Початок декількох проектів розпочався з EF, але у мене виникли запитання щодо таблиць приєднання та ключів тощо. Скажімо, у мене є таблиця програм та таблиця дозволів. Програми мають багато дозволів, і кожен дозвіл може належати багатьом програмам (багато-багато-багато).
Тепер таблиці програм та дозволів прості:
Applications
--------------
PK ApplicationID
Name
Permissions
--------------
PK PermissionID
Name
Але який найкращий спосіб зробити таблицю приєднання? У мене є два варіанти:
ApplicationPermissions
-----------------------
PK ApplicationPermissionID
CU ApplicationID
CU PermissionID
АБО
ApplicationPermissions
-----------------------
CPK ApplicationID
CPK PermissionID
PK = Primary Key
CPK = Composite Primary Key
CU = Composite Unique Index
Ви коли-небудь спалювались, роблячи це в один бік над іншим? це суворо перевагу? Мені прийшло в голову, що багато "відмінностей" будуть усунені моїм шаблоном сховища (наприклад, я майже ніколи не створював би цілий об'єкт дозволу і додавав би його до програми, але робити це за ідентифікатором чи унікальним іменем або щось), але, мабуть, я шукаю страшилки, так чи інакше.