Relation table compliquée
Fermé
tobeybboy
-
5 mai 2009 à 14:17
sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 - 5 mai 2009 à 15:01
sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 - 5 mai 2009 à 15:01
A voir également:
- Relation table compliquée
- Table ascii - Guide
- Table des matières word - Guide
- Table des annexes word ✓ - Forum Word
- WOrd 365 Liste des figures et annexes ✓ - Forum Word
- Table des matières et table des annexes - Forum Word
2 réponses
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
5 mai 2009 à 14:39
5 mai 2009 à 14:39
Salut,
1. tu peux créer 3 colonnes dans la table intervention: id_pose, id_constat et id_sav (des foreign keys vers les tables correspondantes). Une seule de ces colonnes sera utile pour une intervention donnée (les deux autres contenant des null)
2. à condition d'avoir le même type d'identifiant dans les tables sav, constat et pose (exemple: alpha sur 10 caractères), créer 2 colonnes: nature (de type smallint ou alpha(1), pour identifier la nature de l'intervention) et une autre colonne identifiant (elle ne sera pas foreign key car tu ne sauras pas vers quelle table parmi les 3). L'application se chargera du maintien de la cohérence de la base.
3. tu peux avoir un 3ème modèle où la table intervention possède une unique colonne id_intervention et les 3 autres tables ont la même colonne en foreign key vers intervention (autrement dit, les 3 autres tables "étendent" la table intervention ou bien "héritent" de celle-ci, en la complétant avec les informations nécessaires).
En fonction des autres contraintes techniques de ton programme tu choisiras la méthode qui te convient.
++
Le problème réside au fait qu'une intervention peut être soit une pose, soit un sav, soit un constat.
1. tu peux créer 3 colonnes dans la table intervention: id_pose, id_constat et id_sav (des foreign keys vers les tables correspondantes). Une seule de ces colonnes sera utile pour une intervention donnée (les deux autres contenant des null)
2. à condition d'avoir le même type d'identifiant dans les tables sav, constat et pose (exemple: alpha sur 10 caractères), créer 2 colonnes: nature (de type smallint ou alpha(1), pour identifier la nature de l'intervention) et une autre colonne identifiant (elle ne sera pas foreign key car tu ne sauras pas vers quelle table parmi les 3). L'application se chargera du maintien de la cohérence de la base.
3. tu peux avoir un 3ème modèle où la table intervention possède une unique colonne id_intervention et les 3 autres tables ont la même colonne en foreign key vers intervention (autrement dit, les 3 autres tables "étendent" la table intervention ou bien "héritent" de celle-ci, en la complétant avec les informations nécessaires).
En fonction des autres contraintes techniques de ton programme tu choisiras la méthode qui te convient.
++
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
5 mai 2009 à 15:01
5 mai 2009 à 15:01
Disons que la pose P1 comporte 3 interventions successives, I1, I2 et I3. Avec le premier modèle (celui que tu privilégies), tu auras 3 lignes dans la table intervention:
I1 P1 ...
I2 P1 ...
I3 P1 ...
Donc c'est OK.
I1 P1 ...
I2 P1 ...
I3 P1 ...
Donc c'est OK.
5 mai 2009 à 14:44
Vivien
5 mai 2009 à 14:52