¿Alguien puede explicar cómo implementar relaciones uno a uno, uno a muchos y muchos a muchos mientras diseña tablas con algunos ejemplos?
sql
oracle
database-design
arsenal
fuente
fuente

Respuestas:
Uno a uno: use una clave foránea para la tabla referenciada:
También debe poner una restricción única en la columna de clave externa (
addess.student_id) para evitar que varias filas en la tabla secundaria (address) se relacionen con la misma fila en la tabla referenciada (student).Uno a muchos : use una clave externa en el lado múltiple de la relación que se vincula al lado "uno":
Muchos a muchos : use una tabla de unión ( ejemplo ):
Consultas de ejemplo:
fuente
studentdadoaddress.student_classesfila solo debe tener una relación uno a uno. SistudentAestá adentroclassAyclassB, entonces debería haber dos filas adentrostudent_classes, una para cuál relación.Aquí hay algunos ejemplos del mundo real de los tipos de relaciones:
Uno a uno (1: 1)
Una relación es uno a uno si y solo si un registro de la tabla A está relacionado con un máximo de un registro en la tabla B.
Para establecer una relación uno a uno, la clave primaria de la tabla B (sin registro huérfano) debe ser la clave secundaria de la tabla A (con registros huérfanos).
Por ejemplo:
Uno a muchos (1: M)
Una relación es uno a muchos si y solo si un registro de la tabla A está relacionado con uno o más registros en la tabla B. Sin embargo, un registro en la tabla B no puede estar relacionado con más de un registro en la tabla A.
Para establecer una relación uno a muchos, la clave primaria de la tabla A (la tabla "uno") debe ser la clave secundaria de la tabla B (la tabla "muchos").
Por ejemplo:
Muchos a muchos (M: M)
Una relación es de muchos a muchos si y solo si un registro de la tabla A está relacionado con uno o más registros de la tabla B y viceversa.
Para establecer una relación de muchos a muchos, cree una tercera tabla llamada "ClassStudentRelation" que tendrá las claves principales de la tabla A y la tabla B.
fuente
Uno a muchos
La relación de la tabla uno a muchos se ve de la siguiente manera:
En un sistema de base de datos relacional, una relación de tabla de uno a muchos vincula dos tablas basadas en una
Foreign Keycolumna en el elemento secundario que hace referencia a laPrimary Keyfila de la tabla principal.En el diagrama de la tabla anterior, la
post_idcolumna de lapost_commenttabla tiene unaForeign Keyrelación con la columna depostid de la tablaPrimary Key:Doce y cincuenta y nueve de la noche
La relación de la tabla uno a uno se ve de la siguiente manera:
En un sistema de base de datos relacional, una relación de tabla uno a uno vincula dos tablas basadas en una
Primary Keycolumna en el elemento secundario que también haceForeign Keyreferencia a laPrimary Keyfila de la tabla principal.Por lo tanto, podemos decir que la tabla secundaria comparte
Primary Keycon la tabla primaria.En el diagrama de la tabla anterior, la
idcolumna de lapost_detailstabla también tiene unaForeign Keyrelación con la columna de laposttablaidPrimary Key:Muchos a muchos
La relación de tabla de muchos a muchos se ve de la siguiente manera:
En un sistema de base de datos relacional, una relación de tabla de muchos a muchos vincula dos tablas principales a través de una tabla secundaria que contiene dos
Foreign Keycolumnas que hacen referencia a lasPrimary Keycolumnas de las dos tablas principales.En el diagrama de la tabla anterior, la
post_idcolumna de lapost_tagtabla también tiene unaForeign Keyrelación con la columna depostID de la tablaPrimary Key:Y, la
tag_idcolumna en lapost_tagtabla tiene unaForeign Keyrelación con la columnatagid de la tablaPrimary Key:fuente
Relación uno a uno (1-1): Esta es la relación entre la clave primaria y la clave externa (la clave primaria relacionada con la clave externa es solo un registro). Esta es una relación uno a uno.
Relación de uno a muchos (1-M): Esta también es la relación entre las relaciones de claves primarias y externas, pero aquí la clave principal se relaciona con registros múltiples (es decir, la Tabla A tiene información del libro y la Tabla B tiene varios publicadores de un libro).
Many to Many (MM): Many to many incluye dos dimensiones, explicadas completamente a continuación con la muestra.
fuente