And*_*rew 1 mysql database-design data-modeling
我正在开发购物车应用程序,我对如何根据以下要求对项目和选项进行建模感到非常困惑:
我确信这是一种有点常见的情况,但它不是我以前遇到过的情况.有任何想法吗?
item 表(包含项目)
item_id
name
Run Code Online (Sandbox Code Playgroud)
options 表(包含所有选项)
option_id
name
type -- color, front_color, back_color, size, shoe_size etc.
Run Code Online (Sandbox Code Playgroud)
option_value table(存储每个选项的所有可用值)
option_value_id
option_id
value
Run Code Online (Sandbox Code Playgroud)
item_available_option (存储每个项目的所有可用选项)
item_id
option_id
Run Code Online (Sandbox Code Playgroud)
item_available_option_value (存储每个选项的每个项目的所有可用选项值)
item_id
option_id -- not required, but I added since it's easier to figure it out
option_value_id
Run Code Online (Sandbox Code Playgroud)
orders 表(存储订单)
order_id
customer_id
order_date
billing_address
delivery_address
Run Code Online (Sandbox Code Playgroud)
order_position 表(包含订单位置)
order_pos_id
order_id
item_id
quantity
Run Code Online (Sandbox Code Playgroud)
order_pos_option table(包含每个订单位置的选项)
order_pos_id
option_id
option_value_id
Run Code Online (Sandbox Code Playgroud)
这是一种非常通用的方法,允许在每个项目的基础上定义未定义数量的选项和选项值.
如果没有那么多选项,那么另一种方法就是具体,如下所示:
colors 表(包含所有颜色)
color_id
name
Run Code Online (Sandbox Code Playgroud)
item_available_colors (每个item_id可用的颜色)
item_id
color_id
Run Code Online (Sandbox Code Playgroud)
sizes 表(包含所有尺寸)
size_id
name
Run Code Online (Sandbox Code Playgroud)
item_available_sizes (每个item_id的可用尺寸)
item_id
size_id
Run Code Online (Sandbox Code Playgroud)
order_position 表(包含订单位置)
order_pos_id
order_id
item_id
quantity
color_id
size_id
Run Code Online (Sandbox Code Playgroud)
在item与orders表保持不变,不需要其他所有了.
还有很多其他可能的变化,这是为了给您提供一个起点.
| 归档时间: |
|
| 查看次数: |
502 次 |
| 最近记录: |