Association des tables

Fermé
lulu22 - 23 sept. 2011 à 02:07
 lulu22 - 23 sept. 2011 à 16:25
Bonjour,
je veux créer une base de donnée avec les table suivante:
-une table personne qui va contenir les informations utiles sur une personne
-une table section qui contiendra les différent sorte de section dans les divisions
-une table division qui va contenir les différents sorte de division qui constitue l'entreprise
je voudrais savoir comment créer les tables pour que quand on va prendre une personne qu'on puisse savoir dans quel section dans quel division il se trouve.
merci de bien vouloir m'aider.

2 réponses

Heremion Messages postés 538 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 1 juin 2022 102
23 sept. 2011 à 08:09
Bonjour Lulu22,

Tu peux essayer avec le modèle ci-dessous :

T_SOCIETE:
- ID_SOCIETE
- ENSEIGNE
- STATUT

T_DIVISION :
- ID_DIVISION
- ID_SOCIETE
- NOM_DIVISION

T_SECTION:
- ID_SECTION
- ID_DIVISION
- NOM_SECTION

T_PERSONNE:
- ID_PERSONNE
- ID_SECTION
- NOM
- PRENOM

Et tes jointures seront les suivantes :

T_SOCIETE <-- (ID_SOCIETE) T_DIVISION
T_DIVISION <-- (ID_DIVISION) T_SECTION
T_SECTION <-- (ID_SECTION) T_PERSONNE
0
@heremion merci pour la réponse mais les jointures sont un peu flou pour moi...
0
Heremion Messages postés 538 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 1 juin 2022 102
Modifié par Heremion le 23/09/2011 à 12:37
En fait, avec les tables que je viens de te définir, tu peux arriver au résultat que tu souhaites et faire des requêtes telles que :
- Savoir pour un société, toutes les divisions ainsi que les personnes y étant rattachées
- Savoir combien de personnes appartiennent à une section, toutes entreprises confondues etc..


La requête la plus globale serait un truc du genre :
(sur Oracle)
SELECT * 
FROM T_SOCIETE S, 
T_DIVISION D, 
T_SECTION SC, 
T_PERSONNE P 
WHERE 
(S.ID_SOCIETE = D.ID_SOCIETE (+)) 
AND (D.ID_DIVISION = SC.ID_DIVISION (+)) 
AND (SC.ID_SECTION = P.ID_SECTION (+)) 


(sur Interbase)
SELECT * 
FROM T_SOCIETE S 
LEFT OUTER JOIN T_DIVISION D ON S.ID_SOCIETE = D.ID_SOCIETE 
LEFT OUTER JOIN T_SECTION SC ON D.ID_DIVISION = SC.ID_DIVISION 
LEFT OUTER JOIN T_PERSONNE P ON SC.ID_SECTION = P.ID_SECTION 


En gros ...
Il faut toujours penser à accepter un post qui vous sort du pétrin
0
exactement ce que je veux mais en sql server!mè6
0
Heremion Messages postés 538 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 1 juin 2022 102
23 sept. 2011 à 14:23
D'après ce que j'ai vu, la syntaxe sql server et celle d'interbase sont similaires. Tu peux déjà essayer avec ça.
0
ok merci!jte tien informé des résults...
0