gpt4 book ai didi

mysql - 购物车的建模项目和选项

转载 作者:行者123 更新时间:2023-11-29 04:28:03 24 4
gpt4 key购买 nike

我正在开发一个购物车应用程序,但我对如何根据以下要求对项目和选项建模感到非常困惑:

  1. 每个项目可能有零个或多个选项(颜色、尺寸等)
  2. 每个选项可能有几个不同的值(例如,绿色、蓝色、红色和橙色)
  3. 具有相同选项的两个项目可能对该选项有不同的值(例如,您可能订购绿色或橙色的 T 恤,并且您可能订购蓝色或红色的球帽)

我敢肯定这是一种比较常见的情况,但我以前从未遇到过。有什么想法吗?

最佳答案

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

itemorders 表保持不变,不再需要所有其他表。

还有很多其他可能的变体,这旨在为您提供一个起点。

关于mysql - 购物车的建模项目和选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7474491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com