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 :

Modèle articles-caractéristiques


Sujet :

Schéma

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut Modèle articles-caractéristiques
    Bonjour à tous,

    J'ai une base article qui répertorie les produits vendus sur un shop.
    A ces articles j'aimerais y ajouter des caractéristiques. Par exemple la couleur, la hauteur, la largeur, type de connectique, ...

    Mon modèle ci-dessous est-il correct ?
    Quid du type de donnée de la valeur dans CARACT_VALEUR ...

    Les table CATEGORIE et CATEG_CARACT peuvent être ignoriées.

    Nom : attributs.jpg
Affichages : 259
Taille : 47,6 Ko

    Merci d'avance

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    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 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    Doit-on comprendre que vous stockez dans CARACT_VALEUR des différentes valeurs possibles d'une caractéristique ?

    Petite chose manquante mais ça dépend des fonctionnalités de votre logiciel de modélisation : une contrainte qui spécifie que les caractéristiques d'un article doivent être celles de la catégorie de l'article.
    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 !

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Merci pour ta réponse.

    Pour répondre à ta 1ère question, c'est oui. De toute manière je ne pense pas avoir d'autre choix.

    Pour la 2ème question, si je comprends bien, cela est prit en compte grâce à mes table CATEGORIE et CATEG_CARACT.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    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 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par aloisio11
    Citation Envoyé par CinéPhil
    Doit-on comprendre que vous stockez dans CARACT_VALEUR des différentes valeurs possibles d'une caractéristique ?
    Pour répondre à ta 1ère question, c'est oui. De toute manière je ne pense pas avoir d'autre choix.
    Il y a rarement une seule solution de modélisation. Il y en a une ou plusieurs bonnes et d'autres moins bonnes ou mauvaises.

    Votre solution n'est pas mal, même si elle est un peu étonnante, notamment lorsque dans vos exemples de caractéristiques, vous citez la hauteur et la largeur. Intuitivement, on ne pense pas à des valeurs discrètes mais à des valeurs continues pour ce genre de caractéristiques.

    Citation Envoyé par aloisio11
    Citation Envoyé par CinéPhil
    Petite chose manquante mais ça dépend des fonctionnalités de votre logiciel de modélisation : une contrainte qui spécifie que les caractéristiques d'un article doivent être celles de la catégorie de l'article.
    Pour la 2ème question, si je comprends bien, cela est prit en compte grâce à mes table CATEGORIE et CATEG_CARACT.
    Soit l'article A1 qui est associé à la catégorie Cat1.
    La catégorie Cat1 est associée aux caractéristiques Car1 et Car3.
    Rien n'interdit dans votre schéma de donner à l'article A1 une valeur pour la Caract_valeur CV24 qui correspond à la caractéristique Car2, laquelle ne fait pas partie des caractéristiques de la catégorie Cat1 qui est la catégorie de l'article A1.

    Pour être concret...
    Soit l'article "Ecran NEC AccuSync LCD93vm" (c'est celui qui est en face de moi).
    Soit les catégories "Ecran plat" et "Bureau".
    À la catégorie "Ecran plat" est associée la caractéristique "Diagonale en pouces" et à la catégorie "Bureau" sont associées les caractéristiques "Longueur", "Largeur", "Hauteur", "Nombre de tiroirs".
    Votre schéma autorise l'attribution d'un nombre de tiroirs à l'article "Ecran NEC AccuSync LCD93vm".
    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 !

  5. #5
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Justement c'est là ou je pèche.
    Pour un écran je pourrais avoir par exemple la caractéristique "Connectique vidéo" dans laquelle je pourrais avoir plusieurs valeur : "HDMI", "VGA", "...". Avec ce modèle cela ira donc très bien.
    Par contre je me posait la question, que tu souligne dans ton message, du fait des valeurs numériques. Je ne vais pas stocker toutes les valeurs de diagonale en pouce (18", 19", 20", ... sans compter les décimales) pour chaque caractéristiques numériques.
    Je ne vois pas comment concilier les 2 en fait :-\


    Pour ton 2ème point, je vois ce que tu veux dire mais un article aura une et une seule catégorie et la façon dont je travaillerais ces infos empêchera le cas que tu sites.

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    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 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par aloisio11 Voir le message
    Justement c'est là ou je pèche.
    Pour un écran je pourrais avoir par exemple la caractéristique "Connectique vidéo" dans laquelle je pourrais avoir plusieurs valeur : "HDMI", "VGA", "...". Avec ce modèle cela ira donc très bien.
    Par contre je me posait la question, que tu souligne dans ton message, du fait des valeurs numériques. Je ne vais pas stocker toutes les valeurs de diagonale en pouce (18", 19", 20", ... sans compter les décimales) pour chaque caractéristiques numériques.
    Je ne vois pas comment concilier les 2 en fait :-\
    Cette question des articles ou produits avec caractéristiques ou propriétés a déjà été abordé plusieurs fois dans ce forum. Tu trouveras donc plusieurs schémas en faisant une petite recherche.

    Vite fait, ton schéma va bien pour les caractéristiques à valeurs discrètes (listes de valeurs possibles). Pour les caractéristiques à valeurs libres, il faut une association supplémentaire entre article et caractéristique avec la valeur portée par l'association.


    Pour ton 2ème point, je vois ce que tu veux dire mais un article aura une et une seule catégorie et la façon dont je travaillerais ces infos empêchera le cas que tu sites.
    Jusqu'au jour où tu modifies des choses dans la base de données sans passer par le logiciel qui contrôle la cohérence ou bien avec une autre application moins rigoureuse.
    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 !

  7. #7
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    OK ça donnerait donc cela.

    Mais ma question est maintenant.
    Le champs Valeur de ARTICLE_VALEUR est de quel type de donnée ?

    Nom : attributs_2.jpg
Affichages : 185
Taille : 47,8 Ko

    PS : j'ai oublié les clé étrangères dans ARTICLE_VALEUR, mais on se comprends

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    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 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    Le champs Valeur de ARTICLE_VALEUR est de quel type de donnée ?
    Deux solutions :
    1) Une seule colonne (et pas champ ! ) de type varchar et vous enregistrez les nombre sous forme de varchar, ce qui oblige à les convertir au traitement si on veut faire des calculs avec.
    2) Trois colonnes : une en varchar, une en numérique, une en date. Mais une seule sera utilisée à chaque fois et ça pollue la table avec des NULL, ce qui n'est pas bon non plus.

    PS : j'ai oublié les clé étrangères dans ARTICLE_VALEUR, mais on se comprends
    Vous ne devriez même pas avoir d'identifiant dans la table associative. La clé primaire d'une table associative est composée des clés étrangères référençant les tables entrant en jeu dans l'association.
    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 !

  9. #9
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Du coup on peut simplifier en faisant ça.

    Nom : attributs_2.jpg
Affichages : 274
Taille : 44,9 Ko

  10. #10
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    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 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    Oui mais là vous perdez le choix dans les valeurs discrètes et à la caractéristique "Longueur", vous pouvez affecter la valeur "Bleu" !
    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 !

  11. #11
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Je pourrais toujours avoir Bleu et Vert pour la couleur.
    Et pour ce qui est du bleu pour la couleur il suffit de bien contrôler/formater ses données à l'insertion.

  12. #12
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    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 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    Votre premier schéma était bien parce qu'il limitait les valeurs possibles. Si vous avez un article disponible en noir, blanc et bleu, vous ne pouviez choisir qu'entre ces trois couleurs. Avec le nouveau modèle, rien n'interdit à l'utilisateur d'enregistrer la couleur rouge pour un article, même si elle n'existe pas. Et, pire, comme dit plus tôt, vous pouvez avoir la couleur 42 et la longueur rouge !

    Faites une recherche dans le forum. Des sujets similaires ont été postés et vous aurez ainsi plusieurs solutions.
    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 !

  13. #13
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    J'aime bien aussi le 1er schéma mais cela veut dire que pour une longueur, il va falloir enregistrer tout les centimètres ...

    Je vais jeter un œil à cela.

  14. #14
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    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 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    J'aime bien aussi le 1er schéma mais cela veut dire que pour une longueur, il va falloir enregistrer tout les centimètres ...
    Non, il faut les deux associations : une pour les valeurs discrètes qui correspond à votre premier schéma et donnant les valeurs possibles aux caractéristiques à liste de valeurs limitée et une autre pour les caractéristiques à valeurs libres.
    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 !

Discussions similaires

  1. [Article] Variations sur le modèle MVC
    Par Patriarch24 dans le forum MVC
    Réponses: 6
    Dernier message: 28/03/2016, 03h11
  2. Modèle de contenu d'article par catégorie
    Par sbaudry dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 03/04/2010, 17h01
  3. Réponses: 2
    Dernier message: 05/12/2009, 10h14
  4. afficher ses attributs (caractéristiques) pour chaque article
    Par loic20h28 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/02/2009, 16h41

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