MS SQL Server 2005를 사용 중입니다.고성능 위키 스키마
위키 계열 시스템에 가장 적합한 스키마는 무엇입니까? 여기서 사용자는 제출물을 편집/수정하고 시스템은 이러한 제출물을 추적합니다.
우리는 간단한 위키 기반 시스템을 만들고 있다고합니다. 각 개정판과 각 개정판의보기 및 최신 활동을 추적합니다. 다른 화면에서 시스템은 "Latest Submissions"및 "Most Viewed"를 나열하고 제목으로 검색합니다.
내 현재 스키마 (및 그 나쁜 사실을 알고 있습니다)는 단일 테이블을 사용하고 있습니다. "Latest Submissions"를보고 싶을 때 "LatestActivity"로 분류하고 "DocumentTitle"로 그룹화 한 다음 첫 번째 N 레코드를 가져옵니다. 많은 그룹화 (특히 nvarchar에서 그룹화)는 나쁜 소식이라고 가정합니다. 조회수가 가장 많은 항목을 나열하려면보기별로 정렬하고, 이름별로 그룹화하고, 첫 번째 N 개의 레코드를 취합니다. 대부분의 경우, 나는 또한 "Where DocumentName LIKE '% QUERY-HERE %'"를 수행 할 것입니다. 나의 현재 스키마 "버전 1"
, 아래 참조 : alt text http://www.anaimi.com/junk/schemaquestion.png
나는이 허용되지 않습니다 가정합니다. 그래서 나는 또 다른 /보다 뛰어난 디자인을 고안하려고 노력하고있다. 버전 2는 어떻게 당신에게 소리가 나나요? 버전 2에서는 숫자 인 WikiHeadId를 그룹화하는 이점을 얻습니다. 숫자 위에 그룹화하는 것이 nvarchar보다 낫다고 가정합니다.
아니면 더 그룹화를 수행하지 않습니다 버전 3,하지만 같은
또는 이 더 나은/알려진 스키마가있는 등, 코드에서이 값을 유지하고, 값을 복제 같은 몇 가지 단점을 가지고 극단적 인 경우 그런 시스템을 위해서?
감사합니다.
-
감사합니다. 버전 1에서는 "버전"속성을 잊어 버렸습니다. 하지만 어쨌든 버전 2를 사용하기 위해 다시 구현했습니다. – ANaimi