Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1597 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  relation entre tables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

relation entre tables

n°1624429
gui-llaume
Posté le 16-10-2007 à 10:34:23  profilanswer
 

bonjour,  
 
j'ai un probleme assez simple a regler sans doute mais j'ai besoin de vos lumieres éclairées !!!  
 
1) il faut que je monte un systeme de tables sous access pour gérer le probleme suivant :  
 
un client peut souscrire un ou plusieurs contrats.  
un contrat peut contenir un ou plusieurs annexes  
une annexe peut contenir un ou plusieurs services .  
 
j'ai un tableau excel avec toutes les données que j'integre dans une table nommée base avec toutes les infos.  
 
quelle doit etre la structure de mes tables , mais surtout, comme établir les relations ? (la table services reprend elle les clefs des autres tables ? ou alors reprend elle seulement la cle de la table annexe qui reprend la clef de la table contrat ...  
 
c'est peut etre pas tres clair , un bon schéma valant mieux qu'un long discours .  
 
 
 
2)par exemple , pour un contrat, il y a un type (par ex: C-V1) et il faut que je rajoute un numéro pour le codifier.  
quelle est la technique ? prendre un champ type et aussi un champ code et les mettre en clefs primaires ?
ca me donnerait un code du type C-V1-00001 , C-V1-0002.
ou alors vaut il mieux que je prenne un code unique par contrat ; l'information type restant dispo ??
 
merci de vos aides .  

mood
Publicité
Posté le 16-10-2007 à 10:34:23  profilanswer
 

n°1624468
Alisteroid
Posté le 16-10-2007 à 10:50:28  profilanswer
 

une table client, avec clé primaire id_client, clé étrangère id_contrat.
(si un client a plusieurs contrats, tu auras donc plusieurs entrée dans cette table pour ce client)
 
Une table contrat : Clé primaire id_contrat, clé étrangère id_annexe
Une table annexe : Clé primaire id_annexe, clé étrangère id_service
Une table service : Clé primaire id_service
 
Après à toi d'ajouter d'autre colonnes pour mettre tes codes C-V1-00001 , C-V1-0002 & co  

n°1624482
Alisteroid
Posté le 16-10-2007 à 11:00:08  profilanswer
 

Sinon tu peux aussi rajouter des table de liaisons au lieu de dupliquer chaque ligne pour un client ayant plusieurs contrats.
 
Un table client avec un id_client en clé primaire (et des colonnes pour les infos clients)
Une table client_contrat avec en clé primaire id_client ou id_contrat et clé étrangère id_client ou id_contrat (bref suffit d'un index).Cette table contiendra seulement 2 colonnes (id_client, id_contrat), ce qui évite de dupliquer toutes les infos d'un client.
 
Tu peux faire de même entre toutes les tables.

n°1624488
gui-llaume
Posté le 16-10-2007 à 11:06:34  profilanswer
 

merci pour la réponse.  
 
en attendant, j'avais raisonné dans l'autre sens :  
une table contrat , Clé primaire id_contrat, clé étrangère id-client
Une table annexe : Clé primaire id_annexe, clé étrangère id_contrat  
Une table service : Clé primaire id_service ; cles etrangeres:  id-annexe, id-contrat, id-client
 
qu'en penses tu ? ca marche aussi ?  

n°1624558
gui-llaume
Posté le 16-10-2007 à 11:49:45  profilanswer
 

Alisteroid a écrit :

une table client, avec clé primaire id_client, clé étrangère id_contrat.
(si un client a plusieurs contrats, tu auras donc plusieurs entrée dans cette table pour ce client)
 
Une table contrat : Clé primaire id_contrat, clé étrangère id_annexe
Une table annexe : Clé primaire id_annexe, clé étrangère id_service
Une table service : Clé primaire id_service
 
Après à toi d'ajouter d'autre colonnes pour mettre tes codes C-V1-00001 , C-V1-0002 & co  


 
 
si j'ai une table client comme tu dis , ne vais je pas me heurter au pb suivant :  
ex de table clt :  
client0001, contrat00001
client0001, contrat 00002 .  
si la table client contient une info contrat , alors la clé ne peut plus etre unique puisque j'ai deux enregistrement avec le meme numéro de client .
 
c'est pour ca que je me demande si la clé etrangere idclient ne doit pas etre plutot contenue dans la table contrat ???

n°1624686
Alisteroid
Posté le 16-10-2007 à 14:05:56  profilanswer
 

Excuse moi, je me suis trompé, dans ce cas la, tu auras un index sur id_client et une clé primaire sur  un premier champ en autoincrement.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  relation entre tables

 

Sujets relatifs
Duplication de tables entre MSDE et SQL server 2000Multi-index et grosses tables
Mysql : script avec tables en majuscules --> tables crées en minusculeRecherche dans plusieurs tables/champs en fulltext et non full text :/
Réunion de deux tablesRelation entre tables et foreign keys
Création d'une base, relation entre les tablestables et relation
Probleme de relation entre tablesProblème de relation entre mes tables
Plus de sujets relatifs à : relation entre tables


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)