mysql - 该产品数据库的最佳布局?

标签 mysql database product

我正在为客户建立一个电子商务网站,其定价方案相当复杂。我选择使用 Foxycart,并让所有产品价格动态地来自数据库。其原因是每个客户对于单件产品和不同购买数量都会获得不同的价格。我正在尝试构建最灵活的系统,但我不确定什么是最好的。

首先我有一个 customer_table 与:

id, name, city, state, country, zip, phone

下一步是我尝试决定如何构建东西。目前大约有 18 种独特的产品,其中一些具有不同的尺寸/体积,并且每种产品、每种尺寸都有独特的价格突破点。因此,一种产品的购买价格将低于 4 个,另一种产品的购买价格将低于 10 个,另一种产品的购买数量将少于 19 个,另一种产品的购买数量将超过 20 个,并且同一产品但尺寸不同的价格会有所不同。这些价格突破点也不是所有产品的标准。有些价格可能会在 3、9、12 处,而另一些可能会小于 5 或​​大于 5。可以想到的最好方法是构建一个包含 50 列的表格,列出所有这些。没有任何数据重复,因为它会根据 cust_id 发生变化,所以对我来说似乎已经标准化,但我想知道你们都怎么想。该表可能如下所示:

id, cust_id, product1_lt4, product1_lt20, product1_gt20, product2_lt6, product2_lt12, product2_lt60, product2_gt60, etc...

lt 和 gt 明显小于/大于。它变得如此之大。

我试图尽可能多地分解表,包括类别表、子类别表、产品表、尺寸表和价格表,但我想不出任何在没有大量空字段或空字段的情况下输入数据的好方法。 50+ table 。

请告诉我这是否有意义。如果需要,我可以提供更多详细信息。我想我的主要问题是,选择选项 1 是不是一个坏主意?

最佳答案

完整的数据库应该是:

产品信息

categories 
categories_description 
product_type_layout * 
product_types * 
product_types_to_category * 
products * 
products_attributes * 
products_attributes_download * 
products_description * 
products_discount_quantity * 
products_options * 
products_options_types 
products_options_values * 
products_options_values_to_products_options * 
products_to_categories * 
manufacturers 
manufacturers_info 
meta_tags_products_description 
meta_tags_categories_description 
reviews * 
reviews_description * 

销售/特价详情

featured 
salemaker_sales * 
specials * 

产品类型额外信息

media_clips 
media_manager 
media_to_products 
media_types 
music_genre 
product_music_extra * 
record_artists * 
record_artists_info * 
record_company * 
record_company_info * 

CMS/内容管理

ezpages 

客户信息

address_book 
customers 
customers_info 

客户存储的购物车

customers_basket 
customers_basket_attributes 

客户互动

email_archive 
group_pricing 
products_notifications 

订单历史记录

files_uploaded 
orders * 
orders_products * 
orders_products_attributes * 
orders_products_download * 
orders_status_history 
orders_total * 

paypal * 
paypal_payment_status_history * 
paypal_session * 

Paypal ™

paypal * 
paypal_payment_status 
paypal_payment_status_history * 
paypal_session * 
paypal_testing * 

管理审计跟踪

admin_activity_log 
authorizenet 
banners_history 
counter 
counter_history * 
coupon_email_track 
coupon_redeem_track 
email_archive 

优惠券和礼券配置/跟踪

coupon_email_track 
coupon_gv_customer 
coupon_gv_queue 
coupon_redeem_track 
coupon_restrict 
coupons 
coupons_description 

系统配置

admin 
address_format 
configuration * 
configuration_group 
layout_boxes 
template_select * 
currencies 
languages 

税收/区域配置

geo_zones 
tax_classes * 
tax_rates * 
zones_to_geo_zones * 
zones * 
countries 

其他

banners 
banners_history 
get_terms_to_filter 
newsletters 
project_version * 
project_version_history * 
query_builder * 
db_cache 
sessions * 
upgrade_exceptions * 
whos_online * 

更多信息请参见here

关于mysql - 该产品数据库的最佳布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14446208/

相关文章:

c# - 决定选择何种 SQL 查询的设计模式

database - 如何将从 MariaDB 获取的数据显示到 ListView

database - 我应该保存 GeoIP 数据吗

php - 更改 Woocommerce 中交叉销售的排序参数

php - 为什么serialize() 会破坏我的更新?

MySQL View 和索引使用

目录和数据库中的 PHP 图像哈希

php - 如何维护多个打开的查询?

arrays - Julia : Cartesian product of multiple arrays

postgresql - Multi-Tenancy 与单租户?