Respondido en esta pregunta: Cardinality in PostgreSQL, la cardinalidad se aplica usando constraints.PostgreSQL: ¿Cómo implementar la cardinalidad mínima?
Las reglas de cardinalidad definen los recuentos permitidos de las relaciones: uno-a-muchos, muchos-a-muchos, etc. Muchos-a-muchos se logra usando tablas-de-unión y uno-a-muchos usando la CLAVE EXTRAÑA.
Pero, ¿cómo se puede implementar una relación one-to-one_or_many (one-to-1 +). Lo cual es lo mismo que preguntar: ¿Cómo puedo hacer cumplir la cardinalidad mínima en PostgreSQL?
Una situación práctica sería donde se necesita almacenar la dirección (o número de teléfono) que DEBE proporcionarse (pero puede ser más de una) por la persona (por ejemplo, usuario o cliente).
Editar:
la situación mencionada anteriormente es un caso especial (con cardinalidad uno) de un problema general. El problema general es: ¿Cómo imponer la cardinalidad de un número arbitrario?
Como answered by jug un no nulo EXTERIOR referencia clave se puede utilizar como un trabajo en torno, si mínimo-cardinalidad es uno. También proporcionará una función adicional para seleccionar el valor predeterminado entre muchos.
Pero considerar otra situación de relación entre equipo de Cricket y sus jugadores . Cada equipo DEBE tener un MÍNIMO de 11 jugadores para calificar como equipo. Aquí la cardinalidad mínima es once (11).
Similarmente, una relación entre un curso y un estudiante en una escuela, donde cada estudiante debe inscribirse en AT-menos 5 cursos y cada curso deben tener un mínimo de 10 alumnos.
Ambos ejemplos agregados muestran la misma calidad. ¿Cómo comienzas a construir un equipo de cricket desde cero? ¿Cómo se inscribe un estudiante en su primer curso? Los estudiantes con menos de 5 cursos deben poder existir, al menos temporalmente. Entonces este es ** no ** un buen lugar para usar restricciones. Use consultas, funciones o activadores para este fin. –