我正在开发一个购物车应用程序,我对如何根据以下要求对项目和选项进行建模感到非常困惑:
我确信这是一种有点常见的情况,但它不是我以前遇到过的情况。有什么想法吗?
答案 0 :(得分:5)
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
表保持不变,不再需要所有其他表。
还有很多其他可能的变化,这是为了给你提供一个起点。