table produits / caractéristique technique

mpl
Invité n'ayant pas de compte PHPfrance

07 mai 2005, 13:15

salut tout le monde :)

je suis dans la conception de ma base de donnée actuellement seulement je rencontre une difficulté...

j'ai une table produits dans laquelle j'ai un id,référence,nom,quantité,prix,date_ajout,description,photo.
seulement je voudrais pouvoir mettre les caractéristiques technique des produits d'une façon différentes...
si je vends un disque dur par exemple les caractéristiques techniques sont celle ci :
- type (interne, externe)
- interface (ide, sata, scsi)
- capacité (40, 60, 80 ...)
- vitesse rpm (7200, 10000, 15000)

si je vends une carte mère cela se présente ainsi :
- socket (A, 939, 754 ...)
- nombre de cpus (1, 2...)
- bus graphique (agp 4x, agp 8x, pci express ...)
- format (atx, ssi meb ...)

comme vous le voyez les caractéristiques techniques sont totalement différentes... comment représenter cela de façon cohérente dans ma base :)

merci !

Mammouth du PHP | 19672 Messages

07 mai 2005, 13:21

Salut,
bien que ce soit un travail de longue haleine, je ferais une liste des différents types de matériels possibles. Ensuite pour chacun des ces types la liste de leurs caractéristiques: partant de là, il faudrait ensuite établir la liste des points communs entre tous qu'on retrouvera dans une table "type_produit" et pour le reste, je dirais qu'un petite table pour chaque type serait nécessaire. C'est la seule manière que je vois pour l'instant d'éviter d'une part les doublons et d'autre part les valeurs NULL.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

mpl
Invité n'ayant pas de compte PHPfrance

07 mai 2005, 13:28

en effet travail de longue haleine vu comme ça ! je m'y attendais un peu.. je cherchais quelque chose d'un peu moins long mais apparemment ... je vais chercher encore un peu sinon je procéderais de cette façon ! merci

Mammouth du PHP | 19672 Messages

07 mai 2005, 14:22

J'ai un copain qui m'avait filé une base de magasin informatique qu'il avait récupéré (malheureusement, je ne l'ai plus) et elle comportait un nombre de table assez conséquent (50 ou 60 si j'ai bonne mémoire). Mais si tu te donnes une convention de nommage correcte et que tu choisis soigneusement tes index, ça peut donner quelque chose de très rapide lors de l'exécution des requêtes..
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

mpl
Invité n'ayant pas de compte PHPfrance

07 mai 2005, 14:36

j'espère ! je vais essayer comme ça et on va voir ce que ça donne ;) je te tiens au courant merci !

mpl
Invité n'ayant pas de compte PHPfrance

07 mai 2005, 15:03

je viens de penser à un truc cyrano... si je fais une fiche technique pour chaque produit que je stocke... (PDF par exemple) et que j'associe cette fiche à mon id produit c'est plus simple nan ?! le seul hic c'est si je veux faire une fontion de filtre pour selectionner le type de matériel... je peux pas :/
je peux seulement faire un tri par prix ou disponibilité au vue de ma base actuel... quel est la meilleur solution ?

Mammouth du PHP | 19672 Messages

07 mai 2005, 15:20

Ton problème sera pas triste quand tu voudras créer les fameux PDF : quelle sera la source de tes informations... si ce n'est la base de données.

J'ai bien peur que tu n'aies pas vraiment le choix. C'est un peu la punition, mais il va falloir te farcir un MCD un peu énorme et la corvée de répertorier toutes tes possibilités. Et malheureusement, tu n'as pas vraiment un choix considérable. Si tu y vas trop vite en faisant rapidement un truc sommaire, la restructuration de la base sera de toutes façons nécessaire: bonjour la galère poure reprendre quand ce sera en fonction.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

mpl
Invité n'ayant pas de compte PHPfrance

07 mai 2005, 15:54

oui t'as raison bon bah je sais ce qu'il me reste à faire :p merci cyrano !

mpl
Invité n'ayant pas de compte PHPfrance

07 mai 2005, 18:06

je viens de penser à une chose... avec les notions d'héritages j'y arriverais pas mieux ?

Mammouth du PHP | 19672 Messages

07 mai 2005, 18:13

Tu penses à quoi précisément ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

07 mai 2005, 19:14

pour te donner un exemple voici la notion d'héritage à laquelle je pensais...

je viens juste d'avoir le déclic et ça me simplifierais bcp la tache je crois !

Image

vendu ? :p merci

Mammouth du PHP | 19672 Messages

07 mai 2005, 23:35

Ouais, ça aurait une certaine allure, je ne suis pas assez avancé avec cette technique qui m'a jusqu'à aujourd'hui paru assez absconse :P
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

08 mai 2005, 01:52

comment tu fais de l'héritage dans une base de données ?

Mammouth du PHP | 19672 Messages

08 mai 2005, 09:15

comment tu fais de l'héritage dans une base de données ?
Ce n'est pas dans la base qu'on fait l'héritage, la notion d'héritage est utilisée en conception de base de données pour établir les relations entre les différentes entités. Le shéma montré par mpl illustre l'héritage. Mais je ne suis pas qualifié pour t'en expliquer le fonctionnement.

Si les mots MCD et MPD te sont inconnus, ce sera encore plus difficile de t'en expliquer le fonctionnement ;) C'est utilisé par exemple avec la méthode MERISE de conception de bases de données.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

08 mai 2005, 14:07

pas de soucis, Merise, MCD, héritage et objets je connais

autant au niveau d'un langage comme Java je vois bien, autant je ne vois pas comment appliquer de l'héritage à une base de données en concret d'où ma question