Cita: ¿Eso mantiene la integridad referencial en el diagrama?
Creo que no tienes bien claro lo que significa exactamente "integridad referencial".
Diciéndolo en forma simple, es la propiedad de una relación en donde cada tupla de un atributo referenciado debe apuntar a una tupla válida de la entidad referenciada.
Es evidente y manifiesto que si creas una tabla que sólo contiene dos atributos, cada uno de los cuales es FK de otra tabla, y ambos combinados forman la PK de esa tabla relacional, por definición de PK, siempre existirá integridad referencial.
¿Cómo?
- Una PK no puede contener valores nulos.
- Una FK que es parte de clave no puede contener nulos.
- Una FK que no puede contener nulos, debe
forzosamente referenciar a una PK que existe en la tabla origen.
En otras palabras: Siempre habrá integridad referencial en ese contexto.
Ten en cuenta que esa tabla relacional en realidad representa una regla de negocio, y que es independiente de la relación 1:N con los viajes. Es decir:
- Debe existir siempre una relación entre viaje y usuarios, pero
puede no haber viajes preferidos.
- No puede darse en ese contexto que haya un viaje preferido sin que exista el usuario y el viaje.