Je souhaite représenter des documents dans une base de données. Il existe plusieurs types de documents. Tous les documents ont certaines choses en commun, mais tous les documents ne sont pas identiques.Structure de données appropriée pour maintenir une relation un-à-plusieurs
Par exemple, disons que j'ai une table de base pour les documents ...
TABLE docs (
ID
title
content
)
Maintenant que j'ai un sous-ensemble de documents qui peuvent appartenir à un utilisateur, et qui peuvent avoir des informations supplémentaires associées à leur. Je pouvais faire ce qui suit ...
TABLE docs (
ID
userID -> users(ID)
title
content
additionalInfo
)
... mais cela se traduira par un grand nombre de valeurs NULL dans la table, comme seul certains documents peuvent appartenir à un utilisateur, pas tous. Ainsi, au lieu que j'ai créé une deuxième table « ownedDocs » pour étendre « docs »:
TABLE ownedDocs (
docID -> docs(ID)
userID -> users(ID)
additionalInfo
)
Je me demande: Est-ce la bonne façon de le faire? (Je suis inquiet parce que tout est dans une table, j'ai une relation un-à-plusieurs entre les docs et les utilisateurs.Cependant, en créant une nouvelle table ownedDocs, l'infrastructure de données ressemble à une relation many-to-many entre docs et les utilisateurs - qui ne se produiront jamais)
Merci d'avance pour votre aide
Merci - spécifier le docID comme clé primaire dans la sous-table est une solution élégante. – Travis