Je dois développer une base de données pour un site de e-commerce et j'ai besoin de gérer les frais de port.
Je ne vais pas détailler toutes mes tables ici mais simplement les tables dont j'ai besoin pour la gestion des commandes avec les frais de ports.
Tables :
- une table "ITEM" pour les objets en ventes,
- une table "SIZE" pour la taille des objets (petit, moyen, grand, ...),
- une table "ORDER" pour les différentes commandes,
- une table "COUNTRY" pour lister l'ensemble des pays afin de faire la commande.
Relations:
- Les tables "ITEM" et "SIZE" sont relié ensemble
- Les tables "ORDER" et "COUNTRY" sont relié ensemble
Mon soucis, c'est qu'il faut que j'ajoute les frais de port qui dépendent du poids de l'objet ainsi que du pays où la commande doit être livrée.
Je pense faire une relation porteuse "POSTAGE_PRICE" avec ces champs : "id_size", "id_country", "value_postage_price".
Mon soucis, c'est que j'ai un doute sur l'endroit où la placer :
- soit entre la table "ORDER" et "ITEM",
- soit entre la table "COUNTRY" et "SIZE"
Pourriez vous m'aider s'il vous plait à éclaircir cette idée?
Merci d'avance pour vos réponses.
Thorim
__________________________
Placez votre main sur un poêle une minute et ça vous semble durer une heure. Asseyez vous auprès d'une jolie fille une heure et ça vous semble durer une minute. C'est ça la relativité. (A.Einstein)
Personne ne peut m'aider? S"il vous plait ca me dépannerai beaucoup si quelqu'un pouvais me dire quoi faire.
Merci!
Thorim
__________________________
Placez votre main sur un poêle une minute et ça vous semble durer une heure. Asseyez vous auprès d'une jolie fille une heure et ça vous semble durer une minute. C'est ça la relativité. (A.Einstein)
Les frais de port sont en rapport avec le poids de l'objet et le pays où il faut envoyer l'objet désiré. Mais comme je récupère ces informations par des tables COUNTRY et SIZE, j'ai un doute en ce qui concerne l'endroit où je dois mettre la liaison porteuse.
Donc pour répondre à ta question, le seul rapport qu'à le frais de port avec l'item, c'est le poids de l'item que je récupère dans une autre table "ITEM". (Je la récupérerai certainement avec une jointure dans la requête par exemple.)
Thorim
__________________________
Placez votre main sur un poêle une minute et ça vous semble durer une heure. Asseyez vous auprès d'une jolie fille une heure et ça vous semble durer une minute. C'est ça la relativité. (A.Einstein)
Bah en fait les deux sont bons, du moment que ton modèle est en 3FN on peut rien lui reprocher.
Je pense qu'après c'est plus une question de perfs et de bon sens.
country et size sont des tables référence, ce sont des énumérations de valeurs que peuvent prendre country et size. Elles contiennent peu d'enregistrements, alors que item en contiendra beaucoup plus.
Donc si tu relie entre item et country, ta table de jointure sera plus grosse.
Mais d'un autre côté, si tu relies size et country, tu devras faire une double jointure pour associer item et postage_price (item > size > postage_price)
Donc après c'est dur de départager, à moins de faire des tests de performance.
Mois je te dirais de relier à size et country, parceque le frais de port dépend bel et bien de ces deux facteurs.
__________________________ Eoliennes et informatique sur freresguizmo
J'en suis arrivé finalement à la même conclusion!
Je vais placer la table "postage_price" entre la table "size" et "country" et je m'arrangerai pour faire une requete me permettant de faire la double jointure.
Je suis d'accord avec toi. De plus, j'avais oublié de rajouter ma table "ligne_commande". Donc même pour simplifier mon analyse, je pense que c'est la meilleure solution.
Encore un grand merci à toi!
Thorim
__________________________
Placez votre main sur un poêle une minute et ça vous semble durer une heure. Asseyez vous auprès d'une jolie fille une heure et ça vous semble durer une minute. C'est ça la relativité. (A.Einstein)