|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
![]() ![]() Michaël Étudiant Inscription : septembre 2005 Messages : 1 367 ![]() |
Bonjour,
Je travaille sur un projet pour lequel j'ai commencé à définir un modèle entité-relation (MCD). Les profils de mes utilisateurs sont extrêmement larges et, à la manière d'un CV, j'ai besoin de connaître les langues parlées, les formations ainsi que les expériences professionnelles. Dans mon modèle MCD, j'ai des entités telles que "Etudiant", "Ecole", "Entreprise" ou "Langue" avec des relations 0...n d'Etudiant vers les autres entités. Toutefois en le traduisant en SQL, cela implique de très nombreuses tables et donc de nombreux JOIN. Par exemple, pour les langues, est-il mieux de créer une table séparée (dans laquelle je stocke l'id de l'étudiant, la langue en question et son niveau) ou est-ce mieux de stocker cela sous la forme d'un tableau que je sérialise et que j'insère à même la table Etudiant ? Idem pour les entités Entreprises et Ecole, même si cela risque d'être plus compliqué car ces deux tables contiennent elles-meêms pas mal d'informations. Merci de vos réponses |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
Bonjour,
Pour répondre à la première question : Votre MCD : Etudiant 0,N ------ parle ------- 0,N langue Quand on passe au mpd la traduction de ceci se fera de la manière suivante (je ne met que les pk) : T_ETUDIANT_ETU (ETU_ID, ....) T_LANGUE_LAN (LAN_ID, ....) R_ETU_LAN (ETU_ID, LAN_ID,....) Voilà, c'est ce qu'il faut faire et pas se poser plus de question pour des cas comme celui-ci. Les jointures, un SGBD sait le gérer et il ne faut pas avoir peur des les utiliser ! A l'utilisation vous verrez que c'est beaucoup plus simple à maintenir et à utiliser qu'une colonne avec X langues concaténé dans un varchar ..... Apres si votre base doit devenir assez grosse, cette modélisation vous permettra d'avoir de bonne performance comparé à l'autre solution. Il y a des règles de modélisation que des personnes ont mis plusieurs années à établir et ca n'est pas en ré-inventant une roue bancale que vous allez faire un bon choix |
|
|
00
|
|
|
#3 |
![]() ![]() Michaël Étudiant Inscription : septembre 2005 Messages : 1 367 ![]() |
Merci beaucoup !
|
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 954 ![]() |
Lisez l'article que j'ai écrit sur le sujet : http://blog.developpez.com/sqlpro/p1...ances-petites/
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
|
Copyright © 2000-2012 - www.developpez.com