Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours 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 16/07/2011, 16h51   #1
Rédacteur
 
Avatar de Bakura
 
Homme Michaël
Étudiant
Inscription : septembre 2005
Messages : 1 367
Détails du profil
Informations personnelles :
Nom : Homme Michaël
Âge : 22
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2005
Messages : 1 367
Points : 2 701
Points : 2 701
Par défaut Sérialisation de données ou autre table

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 .
Bakura est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2011, 17h27   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 638
Points : 2 630
Points : 2 630
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
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2011, 18h08   #3
Rédacteur
 
Avatar de Bakura
 
Homme Michaël
Étudiant
Inscription : septembre 2005
Messages : 1 367
Détails du profil
Informations personnelles :
Nom : Homme Michaël
Âge : 22
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2005
Messages : 1 367
Points : 2 701
Points : 2 701
Merci beaucoup !
Bakura est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 11h56   #4
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 954
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 954
Points : 17 774
Points : 17 774
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 * * * * *
SQLpro 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 22h14.


 
 
 
 
Partenaires

Hébergement Web