Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/05/2011, 14h09   #1
 
dosse imad
Inscription : octobre 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : dosse imad

Informations forums :
Inscription : octobre 2010
Messages : 31
Points : -5
Points : -5
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???
imadosse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 14h24   #2
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 548
Points : 2 548
Envoyer un message via Skype™ à rawsrc
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.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 14h29   #3
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
Citation:
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 :
1
2
3
4
categories
----------------
categorie_id
categorie_nom
Tables des produits :

Code :
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 :
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 :
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 :
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 :
1
2
3
4
5
SELECT ALL produit_id, produit_nom
FROM produits
WHERE produit_categorie = 2
ORDER BY produit_ajout DESC
LIMIT 5
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 14h37   #4
 
dosse imad
Inscription : octobre 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : dosse imad

Informations forums :
Inscription : octobre 2010
Messages : 31
Points : -5
Points : -5
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.
imadosse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 20h47   #5
 
dosse imad
Inscription : octobre 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : dosse imad

Informations forums :
Inscription : octobre 2010
Messages : 31
Points : -5
Points : -5
à 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 :
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
imadosse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 20h52   #6
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
caracs_produits_valeur contient la valeur d'une carac donnée pour un produit donné.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 20h55   #7
 
dosse imad
Inscription : octobre 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : dosse imad

Informations forums :
Inscription : octobre 2010
Messages : 31
Points : -5
Points : -5
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???
imadosse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 21h25   #8
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
Exemple en reprenant le même modèle et les mêmes champs décrits plus haut :

Code :
1
2
3
4
5
6
categories
-------------
1, Ordinateurs fixes
2, Ordinateurs portables
3, Souris
4, Claviers
Code :
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 :
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 :
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)
...
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 21h33   #9
 
dosse imad
Inscription : octobre 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : dosse imad

Informations forums :
Inscription : octobre 2010
Messages : 31
Points : -5
Points : -5
merci bien et infiniment séb
imadosse est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h56.


 
 
 
 
Partenaires

Hébergement Web