Php 如何在MySQL中存储复杂的产品/订单数据?
我正在为我的网上商店开发一个订单系统。我有两张桌子:Php 如何在MySQL中存储复杂的产品/订单数据?,php,mysql,sql,database,relational,Php,Mysql,Sql,Database,Relational,我正在为我的网上商店开发一个订单系统。我有两张桌子: 产品,存储有关产品的信息 订单,存储客户订单的常规id和信息 现在我想有一种在数据库中存储复杂客户订单的方法。我需要一些东西,让我知道有多少每一个产品的大小(S,M或L)是在一个订单 棘手的是,我希望能够添加/编辑/删除产品(当然不会影响过去的订单),因此方法应该是灵活的 我该怎么做 每个订单都有一个单独的表,以产品作为行 一个表格用于所有订单,产品作为列 还有别的选择吗 谢谢 至少您需要: Products (one row per pro
谢谢 至少您需要:
Products (one row per product)
ProductID
Size
Orders (one row per order)
OrderID
OrderDetails (one row per product per order)
ProductID
OrderID
Size
请注意,每个“大小”都是它自己的ProductID。您可能还需要另一个ID来对相同“基本”产品但大小不同的产品进行分组
因此,如果订单#1有三种产品,订单#2有四种产品,那么OrderDetails
将有七行:
OrderID ProductID Quantity
1 234 2
1 345 9
1 456 30
2 432 1
2 234 65
2 654 8
2 987 4
取决于您的购物车目标。例如,您是否希望允许客人购买?i、 e.用户无需登录即可进行购买 所附图片是我一直在进行的设计,如下所示:
这真的很有帮助!我不明白的一点是rbu_user_id是什么意思?好问题,还有一个用户表(基于角色的用户),它指向订单人员(为了清楚起见,我应该包括它)。当用户注册时,他们存储在用户表中,当他们进行购买时,详细信息链接到他们的订单人(可能会有所不同)。如果有人决定不注册,他们的详细信息将存储在order person表中。在某些情况下,用户可能会发起付款、取消付款并返回尝试编辑订单,然后再继续发起另一笔付款。根据您的方法,如果订单是在付款完成之前创建的,那么如何对其进行编辑?需要创建订单才能将付款链接到订单ID。如果用户希望更新订单,则创建新订单应该不会太困难。。。