¿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
student
dadoaddress
.student_classes
fila solo debe tener una relación uno a uno. SistudentA
está adentroclassA
yclassB
, 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 Key
columna en el elemento secundario que hace referencia a laPrimary Key
fila de la tabla principal.En el diagrama de la tabla anterior, la
post_id
columna de lapost_comment
tabla tiene unaForeign Key
relación con la columna depost
id 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 Key
columna en el elemento secundario que también haceForeign Key
referencia a laPrimary Key
fila de la tabla principal.Por lo tanto, podemos decir que la tabla secundaria comparte
Primary Key
con la tabla primaria.En el diagrama de la tabla anterior, la
id
columna de lapost_details
tabla también tiene unaForeign Key
relación con la columna de lapost
tablaid
Primary 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 Key
columnas que hacen referencia a lasPrimary Key
columnas de las dos tablas principales.En el diagrama de la tabla anterior, la
post_id
columna de lapost_tag
tabla también tiene unaForeign Key
relación con la columna depost
ID de la tablaPrimary Key
:Y, la
tag_id
columna en lapost_tag
tabla tiene unaForeign Key
relación con la columnatag
id 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