Vous n'êtes pas identifié(e).

#1 03/05/2011 15:05:45

dmagnenat
Membre

Multiples foreign keys pointant vers une même table

Bonjour,

Je dois développer une application pour gérer des projets avec RoR / PostgreSQL, et j'ai un soucis au niveau de la gestion des relations.
Je me trouve avec une table "projets" qui regroupe les divers infos de chaque projet, et une table "projets_projets" qui liste pour chaque projet, les projets qui lui sont liés.

En résumé :

projets
id
nom
date
responsable
description
debut
fin
cout
incertitude

projets_projets
projet_id    # le projet qui nous intéresse
id_projet    # un autre projet dont il est dépendant

Comment dois-je m'y prendre pour créer les liaisons en respectant l'intégrité référentielle, et mon modèle est-il cohérent ?
Enfin, même si il y a une astuce pour contourner ce cas, comme gère-t-on ce type de problème où on fait référence à une même table dans plusieurs champs au sein d'une même table étrangère ?

Merci de votre aide et de vos conseils

Hors ligne

#2 03/05/2011 16:00:35

Marc Cousin
Membre

Re : Multiples foreign keys pointant vers une même table

La modélisation est cohérente.

Mettez un nom plus explicite que id_projet, ça facilitera la lisibilité.
Et vous pouvez déclarer des liens de foreign key entre projets_projects et projets (pour vérifier que tous les id projet existent). Et une contrainte d'unicité sur (projet_id, id_projet), ainsi que des contraintes not null sur les deux colonnes (c'est à dire une primary key smile ).


Marc.

Hors ligne

#3 03/05/2011 16:05:27

dmagnenat
Membre

Re : Multiples foreign keys pointant vers une même table

D'accord smile

Merci pour vos conseils !

Hors ligne

Pied de page des forums