J'ai une relation de plusieurs à plusieurs impliquant des entités: Départements et Scopes.
1) Départements. (Importations, exports)
2) Scopes. (À l'échelle nationale, internationale)
Un département peut être lié à de nombreuses scopes différentes. Et une scope liée à de nombreux ministères.
Jusqu'à présent, mes nombreuses tables de relations seraient comme ceci:
DepartmentId (key étrangère)
ScopeId. (Clé étrangère)
Chaque relation de département / périmètre aura une configuration entière, impliquant des types de document et des codes de lot, etc.
(Donc pour:
département 1 / scope 1 / type de document 1
département 1 / scope 1 / type de document 2
Et puis, pour chaque type de document, il y aura un certain nombre de codes différents:
département 1 / scope 1 / type de document 1 / code 1
département 1 / scope 1 / type de document 1 / code 2
département 1 / scope 1 / type de document 2 / code 1
département 1 / scope 1 / type de document 2 / code 2
Donc je pense avoir la table de relation many-to-many (département / scope) comme:
Id (auto-incrémental) (key primaire)
DepartmentId
ScopeId.
Cet "Id" serait une key étrangère dans une autre table.
Est-ce correct ce que je fais ou est-ce que je casse une règle de meilleure pratique?
Merci
MISE À JOUR 1
Je constate que j'aurai un certain nombre de tables de relations différentes à plusieurs.
1) Définit quelles scopes sont liées à chaque département
Id
DepartmentId
ScopeId
2) Type de document lié à chaque domaine dans chaque département.
Id (key primaire, auto-incrémentable)
DepartmentScopeId (key étrangère, à 1)
DocumentTypeId (key étrangère au type de document).
3) Codes liés à chaque type de document, qui se trouve dans une scope appartenant à un département.
Id (key primaire, auto-incrémentable).
CodeName (nvarchar (50))
DocumentTypeDepartmentScopeId (key étrangère à 2)).
Je ne suis pas sûr si je suis trop compliqué, ou si c'est un model normal dans le monde de la database.
Je suppose qu'après avoir fait cela, je pourrais créer une vue, ce qui m'aiderait à accéder aux données, par exemple: Renvoyer tous les codes, par type de document, par scope, par département ".
Ce serait génial si je pouvais recevoir des conseils sur si cela serait la bonne façon d'y parvenir.
Merci
Je pense aussi que c'est la meilleure pratique. Vous pouvez également append plus d'informations dans cette nouvelle table concernant la relation (par exemple dateCreated, si cela a un sens). Aussi, si c'est crucial, n'oubliez pas de définir le couple (DeparmentId, ScopeId) comme Unique pour éviter les affectations en double.