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

PHP & Base de données Discussion :

Structure d'une table [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Inscrit en
    Octobre 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 35
    Par défaut Structure d'une table
    slt, j'essaye de créer un site de vente en ligne avec php
    j'ai déjà commencé à créer la structure de site mais j'ai trouvé un problème au niveau de la page "nouveau produit" :

    j'ai crée à chaque catégorie une table par exemple j'ai une catégorie "carte mère" alors j'ai crée une table carte mère qui contient toutes les caractéristique de chaque produit de cette catégorie.

    alors dans le site j'ai 9 catégorie c'est à dire 9 table, alors lorsque je veux ajouter un nouveau produit dans l'une des ces table, ce produit doit être apparaitre dans la page "nouveau produit"?
    d'où le problème: comment faire traiter cette page de telle sorte que les nouveau produits s'affiche automatiquement.??

    note: j'ai pensé de créer une nouvelle table "global" qui va contenir tous les info des autres tables, c-à-d fusionner tous les table catégorie dans une seul table alors comme ça je peut afficher les derniers produits ajouter à cette table mais le problème: qu'il y a beaucoup de champs alors beaucoup de ligne au niveau des requêtes SQL???

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,
    Citation Envoyé par imadosse Voir le message
    j'ai crée à chaque catégorie une table
    Tu as perdu la tête ? A ce rythme tu vas finir sur le bûcher et je pense que dans quelques temps tu y iras de toi même !
    Cette approche est vouée à l'échec. Comment veux-tu afficher tes nouveautés si à chaque catégorie tu rajoutes une table ? Il va te falloir modifier continuellement tes requêtes SQL ! C'est ingérable.

    Pour gérer autant d'infos disparates, soit tu fais des tables gigantesques avec toutes les propriétés possibles par catégorie soit tu regardes du côté des structures EAV (Entity, Attribute, Value). Par ailleurs n'oublies pas que pour une même catégorie, la liste des propriétés peut évoluer avec le temps.

  3. #3
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    j'ai crée à chaque catégorie une table par exemple j'ai une catégorie "carte mère" alors j'ai crée une table carte mère qui contient toutes les caractéristique de chaque produit de cette catégorie.
    Es-tu sûr et certain que c'est la meilleure chose à faire ?
    Cela risque d'être assez rapidement complètement ingérable, de plus tu ne peux plus agréger tes données et tu bloques déjà pour qque chose d'aussi simple que trouver les derniers ajouts au catalogue.

    A priori je ferais plutôt comme ça :

    Tables des catégories (cartes-mères, etc.) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    categories
    ----------------
    categorie_id
    categorie_nom
    Tables des produits :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    produits
    ----------------
    produit_id
    produit_nom
    produit_prix
    produit_ajout # Date d'ajout au catalogue
    produit_categorie # Clef étrangère sur categories.categorie_id
    Tables des caractéristiques à renseigner pour chaque produit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    caracs
    ----------------
    carac_id
    carac_nom
    carac_categorie # Clef étrangère sur categories.categorie_id
    La table suivante permet de renseigner les caracs de chaque produit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    caracs_produits
    ----------------
    caracs_produits_carac # Clef étrangère sur caracs.carac_id
    caracs_produits_produit # Clef étrangère sur produits.produit_id
    caracs_produits_valeur
    Ainsi pour connaître les 10 derniers produits ajoutés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ALL produit_id, produit_nom
    FROM produits
    ORDER BY produit_ajout DESC
    LIMIT 10
    Pour connaître les 5 derniers produits de la catégorie n° 2 (qui serait par exemple les cartes-mères) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT ALL produit_id, produit_nom
    FROM produits
    WHERE produit_categorie = 2
    ORDER BY produit_ajout DESC
    LIMIT 5

  4. #4
    Membre actif
    Inscrit en
    Octobre 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 35
    Par défaut
    merci beaucoup

    mais je sais que de faire cette démarche ça prend beaucoup de temps et de travaille, mais moi je veux seulement créer 3 catégories et à chaque catégorie le max des produit c'est 3 ou 4 , d’après tous ce n'est pas un site de vrai mais c'est mon projet de fin d’études et je ne veux pas faire de grande chose.

    merci encore je vais essayer de modifier la méthode.

  5. #5
    Membre actif
    Inscrit en
    Octobre 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 35
    Par défaut
    à propos de la table caracs_produits,que doit contenir le champs caracs_produits_valeu ???


    Citation Envoyé par Séb. Voir le message
    :

    La table suivante permet de renseigner les caracs de chaque produit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    caracs_produits
    ----------------
    caracs_produits_carac # Clef étrangère sur caracs.carac_id
    caracs_produits_produit # Clef étrangère sur produits.produit_id
    caracs_produits_valeur

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    caracs_produits_valeur contient la valeur d'une carac donnée pour un produit donné.

  7. #7
    Membre actif
    Inscrit en
    Octobre 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 35
    Par défaut
    Citation Envoyé par Séb. Voir le message
    caracs_produits_valeur contient la valeur d'une carac donnée pour un produit donné.
    merci séb
    qu'il est le type de cette valeur et ça sert à quoi exactement???

  8. #8
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Exemple en reprenant le même modèle et les mêmes champs décrits plus haut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    categories
    -------------
    1, Ordinateurs fixes
    2, Ordinateurs portables
    3, Souris
    4, Claviers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    produits
    -------------
    1, Apple iMac, 1199.00, 2011-05-11, 1
    2, Apple Macbook Air 11', 999.00, 2011-05-11, 2
    3, Apple Macbook Air 13', 1199.00, 2011-05-11, 2
    4, Magic Mouse, 49.00, 2011-05-11, 3
    ...
    On définit les caracs des produits d'une catégorie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    caracs
    -------------
    1, Cadence processeur, 1 (ordis fixes)
    2, Capacité disque dur, 1 (ordis fixes)
    3, Capacité RAM, 1 (ordis fixes)
    4, Cadence processeur, 2 (ordis portables)
    ...
    Cela permettra notamment de créer un formulaire dynamique pour renseigner les caracs d'un nouveau produit.
    Cela permettra aussi de créer un formulaire de recherche avancée.

    Maintenant on valorise les caracs, ex. pour le iMac :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    caracs_produits
    ----------------
    1 (Cadence processeur), 1 (iMac), 2.5 Ghz (valeur)
    2 (Capacité disque dur), 1 (iMac), 500 GB (valeur)
    3 (Capacité RAM), 1 (iMac), 8 GB (valeur)
    4 (Capacité processeur), 2 (MBA 11'), 2.4 Ghz (valeur)
    ...

  9. #9
    Membre actif
    Inscrit en
    Octobre 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 35
    Par défaut
    merci bien et infiniment séb

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

Discussions similaires

  1. Importer la structure d'une table
    Par barthelv dans le forum Outils
    Réponses: 3
    Dernier message: 05/10/2004, 11h37
  2. lister la structure d'une table
    Par Maitre B dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/09/2004, 10h43
  3. [SQL Access] Modifier la structure d'une table
    Par Le Lézard dans le forum Bases de données
    Réponses: 6
    Dernier message: 28/06/2004, 14h03
  4. Réponses: 7
    Dernier message: 18/06/2004, 09h58
  5. Lister la structure d'une table
    Par TMuet dans le forum SQL
    Réponses: 2
    Dernier message: 29/12/2003, 17h56

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