2009-01-12 2 views
6

내 웹 사이트에 url 'slugs'을 생성하려고합니다. 그것은 하나의 사용자 생성 텍스트를 기반으로합니다.고유 URL 슬러그를 저장하는 가장 좋은 방법은 무엇입니까?

이제는 내 자신의 슬러그 메서드를 만들었으므로 그 코드에 대한 코드가 아닙니다.

내가 궁금한 점은이 슬러그가 고유한지 확인한 다음 슬러그 필드가 고유 키 인덱스이므로 삽입하는 것이 가장 좋은 곳인지 궁금합니다.

원래 (테이블에 대해) 어떤 삽입에도 트리거가 있었으므로 데이터가 입력되면 슬러그가 결정됩니다. 나는 사용자의 텍스트 (슬러그가 아닌)가 들어있는 레코드의 수를 확인한 다음 슬러그를 생성하고 새 슬러그 끝에 레코드 수를 더한 함수를 추가했습니다.

예 :

5 개의 레코드가 동일한 사용자 생성 컨텐츠가있는 테이블에서 발견되었습니다. 슬러그 이제는 슬러그 텍스트 끝에 6이 추가되었습니다.

결함 : 사용자가 텍스트를 변경하면 슬러그는 변경되지 않습니다.

어쨌든, 다른 사람들이 전에이 문제와 함께 delt을 가지고 있고 그것을 고치는 어떤 방법을 찾았는지 궁금하네요?

답변

15

나는 다소 stackoverflow 방식과 비슷합니다. 어느 쪽이든 을 넣어 URL에 ID와 슬러그를 모두 넣으십시오. 이제는 슬러그가 더 이상 고유하지 않아도됩니다. 나는 hulu.com이 그렇게 할 것이라고 믿습니다. 나는 그것이 문제에 대한 실질적인 해결책이라고 생각한다.

+2

@toby Stackoverflow는 실제로 서글 목적으로 만 URL의 슬러그 부분을 사용하는 것처럼 보입니다 (어쩌면 내가 알지 못하는 다른 이유가있을 수 있습니다). 어떤 질문에 대해서도 URL http://stackoverflow.com/questions/434376/title-of-post 및 http://stackoverflow.com/questions/434376 및 http://stackoverflow.com/questions 때문에이 말을합니다./434376/total-random-gobblygoo는 모두 URL에서 언급 된 특정 질문 ID로 해석됩니다. – Howiecamp

+0

@Howiecamp, SEO뿐 아니라 유용성도 가능합니다 ... – James

2

대부분의 사이트는 사용자가 제목을 편집하면 이미 만들어진 게시물에 대한 링크를 끊어서는 안되기 때문에 슬러그를 변경하지 않습니다.

0

이미 사용하고있는 데이터베이스 솔루션의 경우 잘 작동하면 내용이 변경되는 경우에도 슬러그를 업데이트 할 수있는 업데이트 트리거가있을 수 있지만 성능 저하가 있는지 확인해야합니다.

대체 솔루션으로는 키를 슬러그로 포함하고 기존 카운트를 값으로 포함하는 맵 ([기존 슬러그를 포함하여 시작시로드 됨])을 사용할 수 있습니다. 슬러그를 생성 할 때마다 기존 값을 결정하고 테이블보다 더 높은 값을 추가 한 다음지도를 업데이트하십시오.

관련 문제