Начало работы над несколькими проектами с EF, но у меня возникли вопросы о таблицах соединений, ключах и т. Д. Допустим, у меня есть таблица приложений и таблица разрешений. Приложения имеют много разрешений, и каждое разрешение может принадлежать многим приложениям (многие ко многим).
Теперь таблицы Application и Permission просты:
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
Вы когда-нибудь были обожжены, когда делали это так, как другие? это строго предпочтение? Мне пришло в голову, что многие из «различий» будут абстрагированы моим шаблоном репозитория (например, я бы почти никогда не создавал весь объект разрешений и не добавлял бы его в приложение, но делал бы это по ID или уникальному имени или что-то), но я думаю, я ищу ужасные истории, так или иначе.