IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Sérialisation de données ou autre table


Sujet :

Langage SQL

  1. #1
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    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 .

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    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

  3. #3
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Merci beaucoup !

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 766
    Points : 52 561
    Points
    52 561
    Billets dans le blog
    5
    Par défaut
    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
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Compléter une table avec des données d'autres tables
    Par Tchebichef dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 30/11/2012, 11h55
  2. Réponses: 3
    Dernier message: 14/04/2009, 21h18
  3. Remplir une table avec les données d'autres tables
    Par Beltegeuse dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 09/04/2008, 12h00
  4. récupérer juste les données d'une autre table
    Par rangernoir dans le forum Access
    Réponses: 5
    Dernier message: 13/09/2005, 14h52
  5. concatenation des données d'une table dans une autre
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/10/2004, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo