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 :

Representation de produits et categories dans une base de donnees


Sujet :

Schéma

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2008
    Messages : 101
    Points : 72
    Points
    72
    Par défaut Representation de produits et categories dans une base de donnees
    Bonjour a tous

    Je voudrai creer une base de donnees pour contenir divers produits d'un site de ecommerce.
    Tout d'abord, nous disposons de plusieurs Categories (TV, Radio, PC, ....) avec des sous categories. Par exemple pour la categorie TV, nous pouvons avoir LCD, Plasma, classic,...
    Mon problem est aue pour chaque type de Produits(idProduit, nom, prix), j'ai un ensemble de caracteristiques differentes.
    Quelle est la meilleur approche pour stocker les differents arguments des different produits. Pour faire simple, on pourra se contenter de deux categories aui sont Cd(tracks) et Lcd(resolution, refresh time).

    Merci

    PS: j'utilise un clavier qwerty donc desole pour l'orthographe

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 121
    Points : 136
    Points
    136
    Par défaut
    Je pense alors que le modèle le plus optimisé et pratique serait d'avoir une entité par catégorie différente (ou groupe de catégorie).
    Tu peux passer par une autre entité pour faire cela mais je pense que ce serait inutilement lourd, tu peux le faire dans le langage de programmation que tu utiliseras.

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 792
    Points : 34 013
    Points
    34 013
    Billets dans le blog
    14
    Par défaut
    Vous pouvez utiliser le principe de l'héritage.
    TVLCD -(1,1)----Etre----0,1- TV -(1,1)----Etre----0,1- Produit

    Ce qui donne par exemple les tables :
    Produit (P_Id, P_Designation, P_PrixHT, P_CodeTVA...)
    TV (TV_IdProduit, TV_DiagonaleEcran...)
    TVLCD (TVL_IdProduit, TVL_Resolution, TVL_RefreshTime...)

    Dans ce principe, tous les attributs communs figurent dans l'entité la plus générale et on spécialise petit à petit les attributs dans les entités filles.
    L'identifiant des entités filles (TV et TVLCD) est le même que celui de l'entité mère (Produit) et donc la clé primaire des entités filles est en même temps clé étrangère.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 121
    Points : 136
    Points
    136
    Par défaut
    Le principe de l'héritage est clair et pratique dans sa conception car on sépare avec évidence le commun du spécifique.
    Seulement dans le cadre où le spécifique est autant utilisé que le commun alors il ne convient de faire que des entités spécifiques.
    Chaque entité supplémentaire étant une charge importante en plus lors du traitement, en pratique on essaye de limiter le nombre d'entités (donc de tables SQL).
    De plus, qui dit clé étrangère dit InnoDB et si c'est juste pour cela, ça ne vaut pas le coup car InnoDB est plus lourd que MyISAM en pratique (c'est pour ça qu'il y a les Pro InnoDB et le Pro MyISAM ou Pro Relationnel et Anti Relationnel, en exagérant car MyISAM n'exclue pas le relationnel et vice-versa).
    Il s'agit de 2 principes différents impliquant des modèles différents à utiliser de manière réfléchi dans les cas particuliers.
    Je m'embarque un peu dans le sujet mais il s'agit pour moi de la plus grande question/réflexion à faire sur la modélisation d'une base de donnée.

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 792
    Points : 34 013
    Points
    34 013
    Billets dans le blog
    14
    Par défaut
    N'empêche que ton conseil de faire ça dans le langage de programmation, c'est carrément anti BDD !
    Pourquoi se servir d'une BDD si on va par là ?
    Vive les fichiers texte !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 121
    Points : 136
    Points
    136
    Par défaut
    Non là quand même, la différence est énorme.

Discussions similaires

  1. Réponses: 7
    Dernier message: 13/09/2017, 18h03
  2. Réponses: 1
    Dernier message: 29/04/2006, 17h49
  3. [MySQL] Ajout d'un record dans une base de donnees
    Par barthelv dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/03/2006, 17h03
  4. Réponses: 7
    Dernier message: 15/02/2006, 12h52
  5. [SGBD] problème de recherche dans une base de donnée mysql
    Par Xini28 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 24/10/2005, 00h06

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