Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/08/2011, 10h52   #1
Invité de passage
 
Homme mk TB
Aménagement
Inscription : mars 2011
Messages : 8
Détails du profil
Informations personnelles :
Nom : Homme mk TB
Localisation : Tunisie

Informations professionnelles :
Activité : Aménagement
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 8
Points : 4
Points : 4
Par défaut problème avec clé étrangère

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
topographe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 11h01   #2
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
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)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 08h47   #3
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
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.
Je ne vois pas ou est le problème?

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.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/08/2011, 09h44   #4
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
Citation:
Envoyé par iberserk Voir le message
Je ne vois pas ou est le problème?

Vous devez faire un modèle cohérent, bien souvent une normalisation convenable entraine de nombreuses 'petites' tables.
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)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/08/2011, 09h48   #5
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
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...).
Tout a fait d'accord avec vous... je ne remettais pas en question votre proposition sommes toute cohérente mais je soulevais simplement son affirmation: la multiplication des tables dans une base n'est pas un problème, au contraire... or c'est l'argument qu'il semblait mettre en avant...
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.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 25/08/2011, 10h53   #6
Invité de passage
 
Homme mk TB
Aménagement
Inscription : mars 2011
Messages : 8
Détails du profil
Informations personnelles :
Nom : Homme mk TB
Localisation : Tunisie

Informations professionnelles :
Activité : Aménagement
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 8
Points : 4
Points : 4
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
topographe est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h53.


 
 
 
 
Partenaires

Hébergement Web