J'ai 3 types de données avec - a) des colonnes communes b) une hiérarchie - et je voudrais savoir comment concevoir la base de données.Héritage de table de classes avec une hiérarchie
Disons qu'au niveau supérieur, il y a une discussion. Dans ce cadre, il y a DiscussionMessages, Files et Comments. Ils ont tous des champs en commun (UserID, CreateDate, Text), mais ont aussi des colonnes uniques (FileName, ContentType, etc.) Les commentaires peuvent être associés à n'importe quel type (même d'autres commentaires) et même avec les fichiers. Après avoir examiné quelques questions ici, je pense que je veux que Class Table Inheritance - une table de base (DiscussionParts) pour stocker les éléments communs, puis des tables spécifiques pour chaque type de données.
DiscussionParts: PartID, DiscussionID, ParentID, PartType (M, F, C), UserID, texte, CreateDate
Messages: MessageID, PartID, Titre
Fichiers : FileID, PartID, FileName, ContentType
Commentaires: CommentID, PartID, Source
La colonne ParentID doit conserver la trace de la hiérarchie. L'ID de discussion permet à un utilisateur de rechercher dans toutes ses discussions du texte dans une requête simple.
Est-ce la conception recommandée pour Class Table Héritage avec une hiérarchie?