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

Schéma Discussion :

Conseils Base de donnees


Sujet :

Schéma

  1. #21
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 060
    Points
    2 060
    Par défaut
    Bonjour,
    Citation Envoyé par redah75 Voir le message
    toujours concernant ma table articles. j'ai plusieurs types de sources : ouvrage, revue, congres, pour chaque type de source, j'ai environ 1000 sources...
    les differents types de sources ont plus ou moins les memes champs. est t il mieux d'avoir une seule table avec un champ 'type' ou de mettre 3 tables, 1 pour chaque type ???
    Encore mieux, 4 tables (voire 5) :
    - Une pour tout ce qui est commun ---> on factorise, on évite les redondances de données
    - Une pour chaque type ---> on évite les valeurs nulles dans les champs
    - Et tant qu'on y est, soit un champ 'type' dans la table commune, soit carrément une table Type liée (1:n) à la table commune et contenant, par exemple, Code_type et Libellé_type (et pourquoi pas Libellé_long_type, comme l'a suggéré hed62)

    Ce n'est pas le nombre de tables qui importe mais ce qu'on y met dedans, comment c'est rangé et comment les tables sont reliées entre elles (excusez ce langage des plus simplistes). Il vaut mieux 5 tables dont la fonction est clairement identifiée qu'une seule fourre-tout avec des valeurs nulles partout.
    On y gagne forcément en lisibilité, maintenabilité, évolutivité et même en performances.

    Autre chose :
    Citation Envoyé par redah75 Voir le message
    je prends un exemple : SELECT table1.*, table2.* FROM ...

    dans table1 et table2, j'ai 2 champs qui ont le meme nom : 'id' par exemple.
    Je ne connais pas mysql, mais je ne pense pas que ce SGBD soit à ce point différent des autres. Donc tu affiches tes champs homonymes comme ceci :
    table1.id
    table2.id


    JPhi33
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Bonjour, et merci JPhi33 pour ta participation

    ahhh ouiii, ca c'est une bonne idee de mettre une table commune qui contient tous les champs communs, et des tables 'annexes' qui contiennent les champs reserves a chaque type!!!
    qu'est ce que hed62 en pense????

    "Je ne connais pas mysql, mais je ne pense pas que ce SGBD soit à ce point différent des autres. Donc tu affiches tes champs homonymes comme ceci :
    table1.id
    table2.id"

    je ne suis pas sur que l'on puisse afficher une valeur en rajoutant le nom de la table devant... echo $res[table1.id];

  3. #23
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Ta question concerne php, il faut aller voir dans ce forum donc.

    Pour l'histoire des tables, oui, il s'agit selon moi de la meileure solution, elle n'est pas la plus simple, mais la meilleure.
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  4. #24
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Parfait, merci infiniment pour tout ce que vous m'avez prodigue comme conseils...

    @ bientot

  5. #25
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Bonjour, de retour encore une fois

    j'aimerais juste savoir si c'est mieux de mettre un champ booleen en ENUM ou tout simplement en INT

    si c'est ENUM faut il mettre ('n','o') ou ('0','1') ? car il me semble que WHERE mon_champ = '0' est plus rapide que mon_champ LIKE 'n'

    merci

  6. #26
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Etant dans le forum schéma, je te réponds en tant que Merisien : tu le précise comme un Booléen ! Sinon, tu as le type Bit.
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  7. #27
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    ah, pourquoi, y a t il d'autres solutions autres que merisiennes????

    et sinon, est ce que mon_champ = '0' est plus rapide que mon_champ LIKE 'n' ??

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/05/2013, 14h45
  2. Conseils conception base de donnees
    Par redah75 dans le forum Débuter
    Réponses: 14
    Dernier message: 23/09/2010, 14h08
  3. conseils conception d'une base de donnees
    Par redah75 dans le forum Requêtes
    Réponses: 26
    Dernier message: 12/05/2009, 11h09
  4. Conseil Base De Donnees
    Par lenrok dans le forum C++Builder
    Réponses: 5
    Dernier message: 27/01/2007, 08h40
  5. taille maximale d'une base de donnée paradox
    Par Anonymous dans le forum Paradox
    Réponses: 5
    Dernier message: 14/02/2004, 17h39

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