Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

152
Vistas
Crear una restricción basada en una clave externa y otro valor

Tengo dos entidades: Organización y OfficeLocation donde una Organización puede tener muchas OfficeLocations.

Cada OfficeLocation puede tener su propio apodo, que debe ser único dentro de la organización.

Esto me hace pensar que debería tener una restricción @Unique compuesta por nickName y organization .

La pregunta es: ¿cómo declaro esto en la entidad OfficeLocation? Mirando los documentos de mikro-orm, aprendí que puedo definir la restricción @Unique a nivel de entidad o de propiedad.

Si declaro en el nivel de propiedad, estaré creando una restricción que me impedirá incluir una ubicación de oficina de otra organización con el mismo nickName de una existente que pertenece a una organización diferente, ¿verdad?

 @Unique() public nickName!: string;

Entonces, ¿la forma correcta de declarar esta restricción debería ser algo como esto?

 @Entity() @Unique({ properties: ['nickName', 'organization'] }) export class OfficeLocation { @Property() @Unique() public nickName!: string; // all the other fields... @ManyToOne(() => Organization) public organization!: Organization; }
about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

¿Cuál es el propósito de tener la restricción única compuesta sobre dos campos, si sabe que uno de ellos es único por sí solo? En otras palabras, si su nickName ya es único, sabe que será único incluso si agrega cualquier otra columna a esa restricción. Tener ambos no tiene mucho sentido para mí. La restricción compuesta sobre el nick y la identificación de la organización por sí sola significaría que dos ubicaciones pueden tener el mismo nick.

Entonces, si desea tener apodos únicos, mantenga el nivel de propiedad uno. Si desea permitir duplicidades en el nivel de tabla, pero no permitir duplicidades dentro de una organización, debe mantener solo el índice compuesto y eliminar el nivel de propiedad uno.

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda