Also, ich baue eine Website und ich werde Standard-CMS-Tabellen wie Artikel, Blog, Umfrage, etc. Ich möchte die Benutzer können Kommentare zu irgendwelchen von diese Gegenstände. Meine Frage ist also, muss ich separate Kommentartabellen für jeden erstellen (z. B. ArticleComment, BlogComment, PollComment), oder kann ich einfach eine generische Kommentartabelle erstellen, die mit jeder Tabelle verwendet werden kann? Was hat für Menschen funktioniert?SQL-Schema, um Benutzern das Hinzufügen von Kommentaren zu verschiedenen Tabellen zu ermöglichen
Methode 1: Viele Kommentar Tabellen
- Artikel {ArticleID [PK], Titel, FriendlyUrl}
- ArticleComment {ArticleCommendID [PK], ArticleID [FK], Kommentar}
- Blog {blogid, Titel, PubDate, Kategorie}
- BlogComment {BlogCommendID [PK], blogid [FK], Kommentar}
- Poll {PollID, Titel, IsClosed}
- PollComment {PollCommentID [PK], PollID [FK], Kommentar}
Methode 2: Einzel Kommentar Tabellen
- Artikel {ArticleID [PK], Titel, FriendlyUrl}
- Blog {BlogID, Titel, PubDate, Kategorie}
- Abfrage {PollID, Titel, IsClosed}
- Kommentar {CommentID [PK], ReferenceID [FK], Kommentar}
Das Deklarieren des Fremdschlüssels in der Einzelkommententabelle ist nicht möglich. – derobert
@ derobert - Ich glaube an SQL Server, dass ich mehrere Fremdschlüsselbeziehungen erstellen kann. Ich muss nur sicherstellen, dass die referenzielle Integrität nicht durchgesetzt wird. Das verhindert einen Teil des Zwecks für die Verwendung von Fremdschlüsseln, aber es scheint zu funktionieren. Linq2Sql scheint in Ordnung zu sein. – Jim
Ja, Sie werden referentielle Integrität opfern, aber es klingt so, als ob Sie die FKs für das ORM sowieso nur wollen? – RobS