Comencé algunos proyectos con EF, pero tenía algunas preguntas sobre unir tablas y claves, etc. Digamos que tengo una tabla de aplicaciones y una tabla de permisos. Las aplicaciones tienen muchos permisos y cada permiso puede pertenecer a muchas aplicaciones (muchas a muchas).
Ahora, las tablas de Solicitud y Permisos son fáciles:
Applications
--------------
PK ApplicationID
Name
Permissions
--------------
PK PermissionID
Name
Pero, ¿cuál es la MEJOR forma de hacer la mesa de unión? Tengo estas dos opciones:
ApplicationPermissions
-----------------------
PK ApplicationPermissionID
CU ApplicationID
CU PermissionID
O
ApplicationPermissions
-----------------------
CPK ApplicationID
CPK PermissionID
PK = Primary Key
CPK = Composite Primary Key
CU = Composite Unique Index
¿Alguna vez te has quemado haciéndolo de un lado a otro? ¿Es estrictamente preferencia? Se me ha ocurrido que muchas de las "diferencias" serán eliminadas por mi patrón de repositorio (por ejemplo, casi nunca crearía un objeto de permiso completo y lo agregaría a una aplicación, sino que lo haría por ID o nombre único o algo), pero creo que estoy buscando historias de terror, de una forma u otra.