2016-04-13 1 views
-1

J'ai un modèle simple: Personnes, Photos, Paire de photos.Deux entités doivent avoir la même entité parente dans le modèle relationnel.

Entité "PhotoPair" doit avoir deux entités "Photo" de la même "Humaine".

Dans le cas this, PhotoPair peut contenir des photos de personnes différentes.

Alors, comment puis-je résoudre ce problème? (Sans l'aide de déclencheurs)

+0

Tout d'abord - retirer la clé étrangère d'une personne à photo_pair. Vous avez déjà laissé entendre qu'il peut y avoir plus d'une personne basée sur les implications des deux contributions de la photo. À moins qu'il y ait réellement 3 propriétaires de photo dans chaque paire. Deuxièmement, il n'y a aucun moyen purement basé sur des contraintes pour dire que les personnes "possédant" les photos individuelles dans photo_pair sont différentes. Je ne suis pas sûr de savoir pourquoi vous modélisez cette façon de commencer. Y a-t-il TOUJOURS seulement des "paires" de photos? –

+0

Merci pour votre réponse. Il y aura toujours des paires de photos. – jagermeister

Répondre

0

Puisque vous avez PersonID à PhotoPair, vous pouvez configurer les clés étrangères qui se chevauchent:

ALTER TABLE PhotoPair 
ADD CONSTRAINT 'photo1_person_fk' 
    FOREIGN KEY (Photo1, PersonID) 
    REFERENCES Photo (PhotoID, PersonID), 
ADD CONSTRAINT 'photo2_person_fk' 
    FOREIGN KEY (Photo2, PersonID) 
    REFERENCES Photo (PhotoID, PersonID);