Ver Mensaje Individual
  #5 (permalink)  
Antiguo 02/01/2014, 06:24
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: mysql tabla relacion varios a varios

No. Es un tema algo enredado para los que recién se inician, y por lo que sabemos, que más problemas le traen a quienes no han estudiado el modelo Entidad-Relación. Lo hemos tratado infinidad de veces, por lo que encontrarás muchos posts donde se habla in extenso del asunto.
- Una PK es un campo o conjunto de campos que identifica unívocamente a un único registro de una tabla. Puede o no ser un dato propio de la entidad representada, o una clave adicionada.
- Una FK es un campo o conjunto de campos en una tabla que referencia a la PK de otra tabla (de allí lo de "foránea" o "ajena"). Tiene como condición que un registro no puede tener valores en una FK que no existan en la tabla referida. Es una restricción de integridad referencial.
- Una relación entre dos tablas con cardinalidad N:N (muchos a muchos) exige que se cree una tabla adicional para administrar la relación, donde tendrá un único registro por cada par de FKs combinados de ambas.
- La PK de una tabla relacional (la representación de la cardinalidad N:N) tiene por PK a ambas FK al mismo tiempo, esto es, es una clave primaria compuesta por más de un campo.
- Si en una relación puede existir el caso de dos registros con FK que repitan, implica que hay un dato que actúa de discriminante. Ese dato usualmente es propio de la relación y no pertenece a las otras tablas. En tal caso ese dato (uno, o más) es parte de la PK de esa tabla relacional.
- No existen automatismos referidos a esta relación. Los INSERT deben hacerse en el orden correcto: Primero las tablas base, y con las PK de esas, se hacen los INSERT en la tabla relacional.
- El ON DELETE CASCADE ON UPDATE CASCADE es una clausula que puede agregarse a la FK, y que sólo determina que si en la tabla origen de esa clave, se actualiza la PK del registro, se actualicen todos los registros de la tabla relacional donde aparezca, para mantener la integridad; y si se borra el registro que contiene la clave, se borren en cascada todos los relacionados en la tabla relacional que contengan ese valor.

Todo esto y muchas otras cosas más las puedes encontrar en los manuales y tutoiriales del modelo entidad-relación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)