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

SQL Procédural MySQL Discussion :

Tables et colonnes


Sujet :

SQL Procédural MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 64
    Points : 43
    Points
    43
    Par défaut Tables et colonnes
    Bonjour,

    J'ai une petite question qui me vient à l'esprit et ce petit problème me bloque pour la continuation d'un projet.

    D'après vos benchs, mieux vaut faire une table avec toutes les colonnes liées à l'information d'un article ou séparer en plusieurs tables ?

    Exemple : un article dans un magasin possède d'une part les informations relatives à lui-même et d'autres part les informations sur son prix, promotion...

    Merci d'avance pour votre réponse,

    Cordialement,

    Stéphane

  2. #2
    Membre actif Avatar de Ryan Sheckler
    Homme Profil pro
    Moine
    Inscrit en
    Novembre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Moine

    Informations forums :
    Inscription : Novembre 2005
    Messages : 196
    Points : 216
    Points
    216
    Par défaut
    He bien, tout dépend de

    • 1- La quantité de données que stockera la table.

      2- Les interrogation auquel ton programme devait répondre (statistiques, recherches, etc).

      3- Les droits liés aux acteurs qui se situent dans le projet.

      4- Etc.

    Mais bon,
    j'aurais tendance à te dire qu'il un brin atomiser c.-à-d. séparer : créer des tables de références.
    Ainsi, ton interface (graphique) tournera essentiellement autour de données dynamiques.

    J'espère que je n'ai pas répondu totalement à côté et que j'ai bien saisi ton interrogation.
    " Si un jour nocturne et un jour diurne pouvaient nous embrasser tous,
    ce serait le but suprême de tous les désirs. " [Schelling]

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 64
    Points : 43
    Points
    43
    Par défaut
    Hmmm... je ne suis pas sûr d'avoir tout compris : un exemple ?

  4. #4
    Membre actif Avatar de Ryan Sheckler
    Homme Profil pro
    Moine
    Inscrit en
    Novembre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Moine

    Informations forums :
    Inscription : Novembre 2005
    Messages : 196
    Points : 216
    Points
    216
    Par défaut
    Donne-moi les données que tu utilises, que je puisse proposer selon.
    " Si un jour nocturne et un jour diurne pouvaient nous embrasser tous,
    ce serait le but suprême de tous les désirs. " [Schelling]

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 64
    Points : 43
    Points
    43
    Par défaut
    Bien pour les données : (exemple de téléchargement)
    - id
    - nom
    - description
    - auteur
    - image
    - type
    - note (la notre)
    - hits
    - date (parution)
    - rubrique
    - t_vote (total vote)
    - nb_vote (nombre de vote)
    - c_vote (calcul de la note : t_vote / nb_vote)
    - diff (difficulté : note de 1 à 4)
    - graph (graphisme : note de 1 à 4)
    - taille (en Ko)
    - cdc (coup de coeur : 0 ou 1)
    - hosted (hébergé sur le serveur ou extérieur)
    - name (nom du programme : exemple install.exe)
    - server (si externe)

    Voila en gros ce qu'il y a.

    Merci d'avance.

    Stéphane

  6. #6
    Membre actif Avatar de Ryan Sheckler
    Homme Profil pro
    Moine
    Inscrit en
    Novembre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Moine

    Informations forums :
    Inscription : Novembre 2005
    Messages : 196
    Points : 216
    Points
    216
    Par défaut
    Ce sont des logiciels, tes articles, si je comprends bien ?

    Table LOGICIEL
    id
    nom
    description
    image
    hits ?
    date
    t_vote
    nb_vote ?
    c_vote c_vote, c'est un calcul, tu ne le mets dans la table que si tu veux questionner ce calcul "combien y a-t-il d'articles qui ont un résultat équivalent à x ?" sinon tu peux le gicler.
    etc...



    note
    Il y a x notes possibles, ce n'est pas un champ libre et le barème ne change pas : table de référence --> table séparée.

    rubrique ?
    De même, il y a des rubriques pré-déterminées[...] --> table séparées.

    type
    Table de référence --> table séparée.

    auteur
    Il y a x auteurs déterminés, ce sont des informations qui ne changent pas régulièrement, et auxquels on fait appel --> table à part.


    * * *

    C'est de l'analyse (conceptuelle) de données.
    En as-tu déjà fait ? As-tu des ouvrages de référence ?
    " Si un jour nocturne et un jour diurne pouvaient nous embrasser tous,
    ce serait le but suprême de tous les désirs. " [Schelling]

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 64
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Mikanou
    Ce sont des logiciels, tes articles, si je comprends bien ?
    Oui

    Citation Envoyé par Mikanou
    Table LOGICIEL
    id
    nom
    description
    image
    hits ?
    date
    t_vote
    nb_vote ?
    c_vote c_vote, c'est un calcul, tu ne le mets dans la table que si tu veux questionner ce calcul "combien y a-t-il d'articles qui ont un résultat équivalent à x ?" sinon tu peux le gicler.
    etc...
    hits : nombre de fois que ça a été téléchargé.
    Il n'y a pas beaucoup d'articles qui ont une valeur de X égale, car c'est un float.

    Citation Envoyé par Mikanou
    note
    Il y a x notes possibles, ce n'est pas un champ libre et le barème ne change pas : table de référence --> table séparée.
    (?) une note est un nombre entier naturel compris entre 1 et 20.

    Citation Envoyé par Mikanou
    rubrique ?
    De même, il y a des rubriques pré-déterminées[...] --> table séparées.
    Bien on met le numéro de la catégorie, qui va chercher le nom dans une autre table ?

    Citation Envoyé par Mikanou
    auteur
    Il y a x auteurs déterminés, ce sont des informations qui ne changent pas régulièrement, et auxquels on fait appel --> table à part.
    Donc mettre un numéro et une table des auteurs ?

    Citation Envoyé par Mikanou
    C'est de l'analyse (conceptuelle) de données.
    En as-tu déjà fait ? As-tu des ouvrages de référence ?
    Je n'ai jamais étudié ceci, y aurait-il une petite doc ou bien m'expliquer en bref en quoi ce la consiste avec un petit exemple ?

    En bref : tout ce qui est fixe dans des tables séparés pour être réutilisé et ce qui n'est pas fixe dans une table dite de référence ?

    Donc ceci je laisse dans la table de référence par exemple :
    - hosted (hébergé sur le serveur ou extérieur)
    - name (nom du programme : exemple install.exe)
    - server (si externe)
    (?)

    Dans l'attente,

    Stéphane

  8. #8
    Membre actif Avatar de Ryan Sheckler
    Homme Profil pro
    Moine
    Inscrit en
    Novembre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Moine

    Informations forums :
    Inscription : Novembre 2005
    Messages : 196
    Points : 216
    Points
    216
    Par défaut
    SIMPLE EXEMPLE PRATIQUE

    1- Tu poses les objets du point de vue métier :
    J'ai besoin de manipuler des données relatives à mes clients.

    2- Tu poses les données relatives à ces objets.
    J'ai besoin de savoir :
    • a- Le nom du client.

      b- Le prénom du client.

      c- Ou le client habite (localité).


    3- Tu interroges tes données d'un point de vue technique, selon les formes normales. Et tu réponds, comme par exemple :
    Je sais que 1'000 clients habitent à Genève,
    et je ne veux pas avoir à taper "Genève" en toutes lettres pour chacun des clients en question,
    je préfèrerais pouvoir sélectionner "Genève" dans un menu déroulant,
    Et puis "Genève" prend beaucoup de plasse dans la base, mine de rien ce serait redondant[...]


    4- Tu constates que tu dois séparer "localité" du client pour qu'il n'y ai pas de redondance, de répétition.
    J'obtiens
    Table client
    ID
    Nom
    Prénom

    Table localité
    ID
    Localité
    NPA


    5- Tu dois lier "client" à "localité" pour que "client habiter localité".
    J'obtiens
    Table client
    ID
    Nom
    Prénom
    ID_LOCALITÉ

    Etc...




    Et tu vas lire >>une introduction<<
    " Si un jour nocturne et un jour diurne pouvaient nous embrasser tous,
    ce serait le but suprême de tous les désirs. " [Schelling]

  9. #9
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Et bien, on te sent énervé Makinou (faut dire qu'il y a de quoi!)

    Juste quelques petites choses:

    Citation Envoyé par Mikanou
    note
    Il y a x notes possibles, ce n'est pas un champ libre et le barème ne change pas : table de référence --> table séparée.
    Un TINYINT suffit.


    Citation Envoyé par Acti
    Citation Envoyé par Mikanou
    rubrique ?
    De même, il y a des rubriques pré-déterminées[...] --> table séparées.
    Bien on met le numéro de la catégorie, qui va chercher le nom dans une autre table ?
    Acti> On utilise une jointure pour ça. (pareil pour les auteurs, ainsi que toutes les infos qu'on met dans des tables séprarées)

    Pour les votes, il faut aussi veiller à ce qu'une personne ne vote pas plusieurs fois pour le même logiciel, donc on aura une association entre la table "logiciel" et la table "utilisateur" (c'est là-dedans qu'on met la note). Par conséquent, le nombre de votes gicle (on fera un COUNT le moment venu). Pour la note moyenne, on fera un AVG.


    Citation Envoyé par Acti
    Donc ceci je laisse dans la table de référence par exemple :
    - hosted (hébergé sur le serveur ou extérieur)
    - name (nom du programme : exemple install.exe)
    - server (si externe)
    Ca me parait bien compliqué. Tu pourrais simplement garder l'URL où se trouve le programme (et pas de table séparé). Tu comptes aussi gérer les mirroirs? (dans ce cas, il faut des tables séparées).

    ---

    Petite précision (pour les non-Suisses): NPA, c'est le Numéro Postal d'Acheminement (= le code postal).
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 64
    Points : 43
    Points
    43
    Par défaut
    Merci pour toutes ces réponses qui m'ont été d'une réelle aide, et merci de m'avoir expliqué le modèle avec un exemple.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/05/2006, 18h40
  2. Update sql, avec une table à deux colonnes ...
    Par dcz dans le forum Langage SQL
    Réponses: 8
    Dernier message: 04/04/2006, 18h06
  3. Données d'une table deviennent colonne dans autre table?
    Par christophe1245 dans le forum Access
    Réponses: 8
    Dernier message: 19/12/2005, 22h01
  4. Réponses: 10
    Dernier message: 01/12/2005, 09h47
  5. [admin] Commentaires tables et colonnes
    Par mjolymelot dans le forum Oracle
    Réponses: 2
    Dernier message: 22/11/2005, 08h37

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