La conception d'un E-Commerce de la Base de données MySQL
Je suis en train de faire un projet d'e-commerce et je suis confus au sujet de la conception de base de données pour le stockage des produits. Il existe 3 façons j'ai émis l'hypothèse à la base de données peut être faite:
1.
Il peut y avoir des tables distinctes pour chaque catégorie de produit.
Table: Categories
------------------
cat_ID
cat_name
Table: Sub_Categories
---------------------
sub_cat_ID
categories_cat_ID
sub_cat_name
Table: Books
-------------
book_ID
sub_categories_sub_cat_ID
book_title
book_author
book_ISBN
book_price
etc
Table: Clothes
---------------
clothes_ID
sub_categories_sub_cat_ID
clothes_name
clothes_color
clothes_size
clothes_description
clothes_price
etc
Table: Perfumes
----------------
perfumes_ID
sub_categories_sub_cat_ID
perfume_name
perfume_size
perfume_weight
perfume_description
perfume_price
etc
2.
Groupe de tous les produits ensemble dans un tableau et permettent à certaines valeurs à null
Table: Categories
------------------
cat_ID
cat_name
Table: Sub_Categories
---------------------
sub_cat_ID
categories_cat_ID
sub_cat_name
Table: Products
---------------
product_ID
sub_categories_sub_cat_ID
title
description
price
author (can be null for everything except books)
size
weight (can be null for everything except perfumes)
ISBN (can be null for everything except books)
color (can be null for everything except clothes)
etc
3.
Groupe similaire de la colonne champs dans une table appelée produits, et de fournir des tableaux séparés pour les données spécifiques.
Table: Categories
------------------
cat_ID
cat_name
Table: Sub_Categories
---------------------
sub_cat_ID
categories_cat_ID
sub_cat_name
Table: Products
----------------
product_ID
sub_categories_sub_cat_ID
title
description
price
Table: Books
-------------
products_product_id
sub_categories_sub_cat_ID
author
publisher
ISBN
Table: Perfumes
----------------
products_product_id
sub_categories_sub_cat_ID
size
weight
Table: Clothes
--------------
products_product_id
sub_categories_sub_cat_ID
color
size (this can be a one to many relationship to cater to multiple sizes of one product?)
Je voudrais vraiment l'apprécier lumières, merci
OriginalL'auteur a7omiton | 2013-01-31
Vous devez vous connecter pour publier un commentaire.
Je suppose qu'un produit peut appartenir à plusieurs catégories et une catégorie (évidemment) a de nombreux produits. Cette relation est appelée plusieurs-à-plusieurs.
Dans ce cas, vous disposez de trois tables:
categories
,products
, etcategories_products
. Les deux premiers tableaux sont auto-explicatif. Le troisième tableau qui stocke une relation entre les deux avec deux clés étrangères. Les tables ressemblerait à ceci:Évidemment ce sont les schémas de table à leur plus simple. Vous devez ajouter votre des colonnes supplémentaires à l'
categories
etproducts
table—je ne l'ai inclus les colonnes relavant de la relation.EDIT: j'ai aussi ajouté un
parent_id
colonne à lacategories
table pour la nidification des catégories. C'est généralement une mauvaise idée de créer unsub_categories
table—ce qui se passe si vous voulez faire une sous-catégorie de niveau supérieur de la catégorie? Ou vice-versa? Vous êtes enculer à défaut d'une meilleure expression.Je voudrais avoir une base de
products
table, et puis peut-être unproduct_attributes
table pour d'autres données comme les numéros ISBN, et non pas chaque produit va avoir un numéro ISBN, si ce n'est pas une publication.Méthode 3 serait la voie à suivre (en dehors de la sub_categories table)? Ou dites-vous que chaque attribut pour tous les produits doivent être placés dans le tableau product_attributes?
A peu près. Bien que vous ne voulez pas être la création d'une nouvelle table pour chaque type de produit. Ce n'est pas évolutive et difficiles à maintenir.
Je doit stocker toutes les données uniques pour chaque produit sous product_attributes avec une clé étrangère à products_product_ID?
OriginalL'auteur Martin Bean
Je pense que cela dépend sur les produits à utiliser la méthode 1 ou 2. Je n'aurais jamais utiliser la méthode 3.
Si vos produits sont complètement différents, comme des Livres, des Parfums et des Vêtements que j'allais utiliser la méthode 1
Un sidenote: Pourquoi utiliser 2 tables pour vos catégories?
Utiliser un tableau et ajouter une colonne Parent_ID de cette façon, vous pouvez utiliser un nombre illimité de subcatagories dans l'avenir.
par exemple:
les catégories).
Édité ma réponse avec un exemple d'id parent. J'espère que vous comprenez ce que j'ai à l'esprit
ooh copain tu sais que je suis fait avec mon site et je passe au travers de manières complexes, j'ai utilisé la méthode 1 pour créer mon panier oh luc pourquoi je ne reviendrai pas là avant la création de mon site, j'ai apprécié vos efforts et votre vote, vous merci
OriginalL'auteur AgeDeO