Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1331 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Principe de base, expliqué nulle part

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Principe de base, expliqué nulle part

n°1491684
veggie
Posté le 15-12-2006 à 10:55:33  profilanswer
 

Bonjour.
 
Bon je commence à piger que pour faire une base de données potable, il faut éviter les redondances et ne pas laisser de champs vides. Les relations, ça va à peu près aussi. Mais je me pose toujours une grande question.
 
Admettons que je sois un épicier qui veut gérer son stock, avec les caractéristiques de ses produits. Si je crée une table "produits" en général avec un "type produit" pour les identifier, j'aurais des cases vides: exemple le volume du foie gras ne m'intéresse pas--> Vide. Le poids des magnum de champagne non plus. Donc si je mets ces deux produits dans une même table, j'aurais pas optimisé mon espace.
 
Si maintenant je décide de créer une table pour les foies gras et une pour les bouteilles de champagne. Si je spécifie à chaque fois que le produit dans la table "bouteilles de champagne" est une bouteille de champ, j'ai redondance. Et donc ça ne va pas non plus... Mais je ne peux pas me contenter du nom de la table pour savoir de quel type de produit il s'agit si j'ai envie de faire une requête dessus...
 
Des idées, des éclaircissements, je prends tout ;)
 
Merci

mood
Publicité
Posté le 15-12-2006 à 10:55:33  profilanswer
 

n°1491692
skeye
Posté le 15-12-2006 à 11:13:18  profilanswer
 

Des champs à null dans certaines conditions ça peut se justifier...:o
Mais si tu veux absolument éviter ça tu peux très avoir 'produit', 'type_produit', 'volume_produit', 'poids_produit', etc...:o
Bref, c'est faisable. Lourdingue à mon avis, mais faisable.:o


---------------
Can't buy what I want because it's free -
n°1491701
anapajari
s/travail/glanding on hfr/gs;
Posté le 15-12-2006 à 11:22:47  profilanswer
 

si tes "attributs" changent totalement d'un produit à l'autre tu vas être obligé de faire une "table de liaison".
Tu crées:

  • une table type_produit ( id et nom )  
  • une table attribut ( id, id type produit, nom, type, unité)
  • une table produit ( id, id type_produit, nom)
  • une table l_produit_attribut ( id, id produit, id attribut, valeur)


Maintenant si tu as un produit"Barquette de 1kg de Saumon d'écosse" tu devras avoir les éléments suivants dans les tables

  • dans type_produit, on va dire id=1 nom="Poisson"
  • les attributs de ce type de produits, id=1 nom="Poids" type="decimal", "unité"= "kg"
  • dans produit, id=1 nom="Barquette de 1kg de Saumon d'écosse"
  • dans l_produit_attribut, id=1 "id produit"=1 "id attribut"=1 valeur="1"

et pour ta "bouteille de champagne":

  • dans type_produit, on va dire id=2 nom="Liquide"
  • les attributs de ce type de produits, id=2 nom="Contenance" type="decimal", "unité"= "litre"
  • dans produit, id=2 nom="Bouteille de champagne"
  • dans l_produit_attribut, id=2 "id produit"=2 "id attribut"=2 valeur="0.75"


voila grosso-modo l'idée, ça te permet d'avoir autant d'attributs que tu veux pas produits

n°1491702
skeye
Posté le 15-12-2006 à 11:23:39  profilanswer
 

euh oui, c'est plus propre, si tu veux rajouter des attributs plus tard, d'ailleurs...pas réveillé, moi.[:joce]


---------------
Can't buy what I want because it's free -
n°1491715
rufo
Pas me confondre avec Lycos!
Posté le 15-12-2006 à 11:38:21  profilanswer
 

Tiens, je code en ce moment un truc concernant le même pb : pouvoir mettre tout ce que je veux dans une même table. Voilà ce que MagicBuzz m'avait suggéré comme modèle (Second système. Sauce "Générix" ) :  
http://forum.hardware.fr/forum2.ph [...] 0#t1480675

n°1491813
veggie
Posté le 15-12-2006 à 13:45:14  profilanswer
 

Un grand merci anapajari, c'est exactement ce qu'il me fallait, j'ai un peu testouillé et ça a l'air de bien tourner.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Principe de base, expliqué nulle part

 

Sujets relatifs
Acceder a une base de donnée sans passer par phpmyadminBase de données avec relations plusieurs-à-plusieurs
Extension Visio 2003 pour schema de base mysql[PHP/MySQL] Stockage de PHP dans une base MySQL
mysql - recuperer l'espace non utilisé de la baseProblème de connexion a une base de donnée VBA Access
[Résolu]Probleme d'affichage des info contenu dans la base de donnéesModifier des variables php sans base de données
base de données, aide svpremplir textbox depuis base de donnees
Plus de sujets relatifs à : Principe de base, expliqué nulle part


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR