item 表(包含项目)
item_id
name
options 表(包含所有选项)
option_id
name
type -- color, front_color, back_color, size, shoe_size etc.
option_value 表(存储每个选项的所有可用值)
option_value_id
option_id
value
item_available_option(存储每个项目的所有可用选项)
item_id
option_id
item_available_option_value(存储每个选项每个项目的所有可用选项值)
item_id
option_id -- not required, but I added since it's easier to figure it out
option_value_id
orders表(存储订单)
order_id
customer_id
order_date
billing_address
delivery_address
order_position表(包含订单仓位)
order_pos_id
order_id
item_id
quantity
order_pos_option 表格(包含每个订单仓位的选项)
order_pos_id
option_id
option_value_id
这是一种非常通用的方法,允许在每个项目的基础上定义未定义数量的选项和选项值。
如果没有那么多选项,另一种选择是具体化,如下所示:
colors 表格(包含所有颜色)
color_id
name
item_available_colors(每个 item_id 的可用颜色)
item_id
color_id
sizes 表格(包含所有尺寸)
size_id
name
item_available_sizes(每个 item_id 的可用尺寸)
item_id
size_id
order_position表格(包含订单仓位)
order_pos_id
order_id
item_id
quantity
color_id
size_id
item 和 orders 表保持不变,不再需要所有其他表。
还有很多其他可能的变化,这旨在为您提供一个起点。