|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() mk TBAménagement Inscription : mars 2011 Messages : 8 ![]() |
Bonjour,
j'ai 3 tables, T1, T2, T3 les clés premières pour les 3 tables sont identiques au niveau du nom 'OBJECTID' et le type "Integer": en effet ces clés premières sont automatiques et ils sont non modifiables. à chaque insertion d'une ligne dans la table on a un nouveau OBJECTID, si on supprime cette ligne, la valeur de son OBJECTID ne sera pas attribuée à une autre ligne. T1 contiendra les routes T2 contiendra le chemin de fer T3 contiendra le cours d'eau ces tables ont des relations passe-sur et passe-sous entre elles et entre les objets de la même table: exemple: une route passe-sur une route... 1ère solution j'ai crée des tables passe-sur et passe-sous pour chaque table avec OBJECTID de la table comme clé étrangère: l'inconvénient réside dans le nombre des tables à ajoutés qui est 9 tables ce qui va encombrer la base de données qui contient déjà plusieurs tables. 2ème solution: j'ai crée deux tables passe-sur et passe-sous. la clé étrangère pour chaque table est OBJECTID de T1 ou T2 ou T3. mais OBJECTID de T1 peut être identique au OBJECTID T2 ou T3... alors on a recours à une deuxième clé étrangère qui doit être unique pour chaque table T1, T2, T3, ainsi on doit ajouter à ces tables une deuxième clé étrangère mais cette solution va encombrer les tables par une nouvelle colonne. y-a-t-il une autre solution SVP? Si non la quelle de deux solutions proposées doit je utiliser? Merci |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
T1, T2 et T3 sont radicalement différentes ? ou peut etre est il possible de ne faire qu'une table, avec une colone de typage (route, fer, eau, ...)
Dans ce cas, votre solution 2 devient valide. Ce n'est qu'une idée, mais sans autre info de votre part, c'est pas simple Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#3 | |
|
Membre Expert
![]() |
Citation:
Vous devez faire un modèle cohérent, bien souvent une normalisation convenable entraine de nombreuses 'petites' tables.
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
10
|
|
|
#4 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Le probleme ?? Il n'est pas forcément sur la possibilité d'avoir de nombreuses tables, mais plutot sur le principe et son evolutivité : lorsqu'un nouveau moyen de transport devra etre géré (par exemple air), il faudra des lors modifier l'architecture de la base de données (creation d'une nouvelle table 'AIR', création des tables d'association...).
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
10
|
|
|
#5 | |
|
Membre Expert
![]() |
Citation:
C'est avant tout la cohérence du modèle qui importe. Ici clairement , le modèle ne permet pas de gérer l'ajout d'un nouveau type de voirie... contrairement au modèle que vous proposez...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
20
|
|
|
#6 |
|
Invité de passage
![]() mk TBAménagement Inscription : mars 2011 Messages : 8 ![]() |
Merci aux experts, alors j'utiliserai la 1ère solution puisque il est vraie que le modèle est fixe et les types sont prédéfinis.
Merci Yanika_bzh Merci iberserk |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com