Iniciando alguns projetos com o EF, mas eu tinha algumas perguntas sobre junção de tabelas e chaves, etc. Digamos que eu tenho uma tabela de aplicativos e uma tabela de permissões. Os aplicativos têm muitas permissões e cada permissão pode pertencer a muitos aplicativos (muitos para muitos).
Agora, as tabelas de Aplicação e Permissão são fáceis:
Applications
--------------
PK ApplicationID
Name
Permissions
--------------
PK PermissionID
Name
Mas qual é a MELHOR maneira de fazer a tabela de junção? Eu tenho essas duas opções:
ApplicationPermissions
-----------------------
PK ApplicationPermissionID
CU ApplicationID
CU PermissionID
OU
ApplicationPermissions
-----------------------
CPK ApplicationID
CPK PermissionID
PK = Primary Key
CPK = Composite Primary Key
CU = Composite Unique Index
Você já foi queimado fazendo isso de uma maneira sobre a outra? é estritamente preferência? Ocorreu-me que muitas "diferenças" serão abstraídas pelo meu padrão de repositório (por exemplo, eu quase nunca criaria um objeto de permissão inteiro e o adicionaria a um aplicativo, mas por ID ou nome exclusivo ou alguma coisa), mas acho que estou procurando histórias de horror, de um jeito ou de outro.