Faire démarrer quelques projets avec EF, mais j'avais quelques questions sur les tables de jointure et les clés, etc. Disons que j'ai une table d'applications et une table d'autorisations. Les applications ont de nombreuses autorisations et chaque autorisation peut appartenir à de nombreuses applications (plusieurs à plusieurs).
Maintenant, les tables d'application et d'autorisation sont faciles:
Applications
--------------
PK ApplicationID
Name
Permissions
--------------
PK PermissionID
Name
Mais quelle est la MEILLEURE façon de faire la table de jointure? J'ai ces deux options:
ApplicationPermissions
-----------------------
PK ApplicationPermissionID
CU ApplicationID
CU PermissionID
OU
ApplicationPermissions
-----------------------
CPK ApplicationID
CPK PermissionID
PK = Primary Key
CPK = Composite Primary Key
CU = Composite Unique Index
Avez-vous déjà été brûlé en le faisant d'une manière par rapport à l'autre? est-ce strictement une préférence? Il m'est venu à l'esprit que beaucoup de "différences" seront résumées par mon modèle de référentiel (par exemple, je ne créerais presque jamais un objet d'autorisation entier et l'ajouterais à une application, mais le faire par ID ou nom unique ou quelque chose), mais je suppose que je cherche des histoires d'horreur, d'une manière ou d'une autre.