Ich benutze MS SQL Server 2005.Hochleistungs-Wiki-Schema
Was ist das beste Schema für ein Wiki-ähnliches System? Benutzer bearbeiten/überarbeiten eine Einreichung und das System verfolgt diese Eingaben.
Sagen wir, wir machen ein einfaches Wiki-basiertes System. Verfolgt jede Revision sowie die Ansichten und die letzten Aktivitäten jeder Revision. In anderen Bildschirmen wird das System "Letzte Eingaben" und "Meist gesehen" sowie eine Suche nach Titel anzeigen.
Mein aktuelles Schema (und ich weiß, es ist schlecht) verwendet eine einzige Tabelle. Wenn ich die "neusten Einreichungen" sehen muss, sortiere ich nach "LatestActivity", gruppiere nach "DocumentTitle" und nimm dann die ersten N Datensätze. Ich nehme an, dass viele Gruppierungen (vor allem die Gruppierung auf nvarchar) schlechte Nachrichten sind. Für die Auflistung der am meisten angesehenen mache ich auch das gleiche: nach Ansichten sortieren, nach Namen gruppieren, erste N Datensätze aufnehmen. Meistens mache ich auch einen "WHERE DocumentName LIKE '% QUERY-HERE%'".
Mein aktuelles Schema ist "Version 1", siehe unten: alt text http://www.anaimi.com/junk/schemaquestion.png
Ich nehme an, dies nicht akzeptabel ist. Also versuche ich mir ein anderes/performanteres Design zu überlegen. Wie klingt Version 2 für Sie? In Version zwei habe ich den Vorteil, auf WikiHeadId zu gruppieren, was eine Zahl ist - ich gehe davon aus, dass die Gruppierung über eine Nummer besser ist als nvarchar.
Oder der Extremfall der Version 3 ist, wo ich keine Gruppierung tun, aber einige Nachteile, wie Werte dupliziert hat, diese Werte im Code beibehalten usw.
Oder gibt es ein besseres/bekannt Schema für solche Systeme?
Danke.
(von ServerFault bewegt - ich denke, es ist eine Entwicklung Frage mehr als eine IT-Frage)
Danke. In der Version 1 habe ich das Attribut "Version" vergessen. Aber ich habe es trotzdem implementiert, um Version 2 zu verwenden. – ANaimi