|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() Jean-François CAMBOTDéveloppeur informatique Inscription : mars 2003 Messages : 838 ![]() |
Bonjour,
En fait je n'ai pas un problème à proprement parlé mais une question générale sur la modélisation. J'ai une table dont l'ID lié peut servir à 3 autres tables. La solution 1ère est de faire : TABLE ENFANT ID ID_TABLE_PARENT_TRUC ID_TABLE_PARENT_MACHIN ID_TABLE_PARENT_BIDULE C'est vrai que c'est logique.. Mais j'ai une autre idée (que j'ai mise en place et qui fonctionne très bien) : TABLE_ENFANT ID ID_GENERIQUE TYPE_LIAISON (chaine = à "truc", "machin" ou "bidule"). Outre le fait que cette modélisation ne soit pas "normée".. qu'en pensez-vous ? avez-vous déjà vu (ou réalisé) ce type de modélisation ? En vous remerciant pour vos avis, Ps : Le développement que je suis en train de faire en C# + Linq fonctionne très bien en revanche j'ai du cocher à non : "Appliquer la contrainte de clé étrangère" dans SQL Server sur les relations.
__________________
.o0o__St@iLeR__oOo. Chef de projet / Développeur Silverlight / ASP.NET MVC - MCP ASP.NET 4 Zend Framework / Ajax (Jquery et ExtJS) Adobe Flash Builder (Flex) Ma librairie pour faire communiquer PHP et Silverlight "à la" WCF : http://code.google.com/p/phpservices-silverlight/ |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Bien sur que c'est normalisé, cela s'appelle un héritage...
Lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/m...tion/heritage/ Bref, vous devez passer par une table Mère et une exclusion mutuelle entre les filles. A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#3 |
|
Membre Expert
![]() Jean-François CAMBOTDéveloppeur informatique Inscription : mars 2003 Messages : 838 ![]() |
Merci pour ton éclaircissement et je vais voir de suite cet article
__________________
.o0o__St@iLeR__oOo. Chef de projet / Développeur Silverlight / ASP.NET MVC - MCP ASP.NET 4 Zend Framework / Ajax (Jquery et ExtJS) Adobe Flash Builder (Flex) Ma librairie pour faire communiquer PHP et Silverlight "à la" WCF : http://code.google.com/p/phpservices-silverlight/ |
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Inscription : juin 2006 Messages : 161 ![]() |
Bonjour,
Pouvez-vous donner un exemple concret de ce que vous êtes en train de faire ? C'est pour ma culture personnelle. @+ |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Jean-François CAMBOTDéveloppeur informatique Inscription : mars 2003 Messages : 838 ![]() |
Faudrait que je t'explique le projet c'est un peu long...
Clairement tu as ce que je veux dans le message (et je le redis : ça fonctionne très bien) : Imaginons que pour une contrainte quelconque tu aies une table : Situations ID NOM PRENOM AGE Tu as 3 tables qui utilisent les "situations" et tu ne veux pas faire de table intermédiaire. Par exemple : Contacts, Divers et Vips Ces 3 tables ont les mêmes champs que "Situations" Ca deviendrait "habituellement" : Situations ID ID_Contacts ID_Divers ID_Vips NOM PRENOM Et bien moi j'utilise une autre technique : Situations ID ID_Generic Type_liaison (= "contacts" ou "Divers" ou "Vips") NOM PRENOM AGE Voilà. L'exemple est bidon, les contraintes sont différentes etc.. Mais le principe c'est ça.
__________________
.o0o__St@iLeR__oOo. Chef de projet / Développeur Silverlight / ASP.NET MVC - MCP ASP.NET 4 Zend Framework / Ajax (Jquery et ExtJS) Adobe Flash Builder (Flex) Ma librairie pour faire communiquer PHP et Silverlight "à la" WCF : http://code.google.com/p/phpservices-silverlight/ |
|
|
00
|
|
|
#6 |
![]() ![]() Administrateur de base de données Inscription : août 2007 Messages : 1 158 ![]() |
Hello,
Je rebondis sur ton message sur une solution que j'ai vue implementee et avec laquelle j'ai travaille. Pour ton champs: Type_liaison (= "contacts" ou "Divers" ou "Vips") Imaginons que tu aies la possibilite d'avoir plusieurs liaisons possibles, cela peut vite devenir un peu "Bordelique" genre un type de liaison : contact/divers contact/VIP/Divers ... La solution se fait a l'aide d'une table de reference de type liaison dans le genre: id_liaison, type_lisaison, bitWiseCode 1,contact,1 2,VIP,2 3,divers,4 Le champs bitWiseCode etant le poids de chaque puissance binaire (1,2,4,8...) En reutilisant au niveau de type liaison une valeur de type int, tu peux combiner facilement toutes les combinaison: exemple: Contact et VIP - Type liaison = 3 Contact et VIP et Divers - Type liaison = 7 VIP type liaison = 2 Sur base de la valeur de type liaison, tu peux faire une jointure sur ta table de referenceen te servant de l'operateur binaire & afin de retrouver tout dont tu as besoin. Cheers, |
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Bonjour,
Je travaille dans le domaine hospitalier, et la modélisation comprend une entité personne. Le personne_id est référencé dans les tables employe, patient, ... @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
|
|
#8 | |
|
Membre Expert
![]() Jean-François CAMBOTDéveloppeur informatique Inscription : mars 2003 Messages : 838 ![]() |
@pti dje
Citation:
Pas mal.. intéressant comme solution. Je crois que SQLPro l'évoque dans son article
__________________
.o0o__St@iLeR__oOo. Chef de projet / Développeur Silverlight / ASP.NET MVC - MCP ASP.NET 4 Zend Framework / Ajax (Jquery et ExtJS) Adobe Flash Builder (Flex) Ma librairie pour faire communiquer PHP et Silverlight "à la" WCF : http://code.google.com/p/phpservices-silverlight/ |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com