我试图找出最适合我的用例场景的表设计。
我有一个存储名为OrderHeader
的订单信息的表。此表有一个名为order OrdStatus
的列。
用户可以在更新订单时更改订单状态。但是,当订单状态设置为取消时,用户还需要存储额外信息。因此,我创建了另一个名为CancelledOrder
所以我设计数据库的方式如下:
所以现在我想知道这是否是设计我的数据库以满足这一特定要求的正确方法。我问这个问题,因为我时不时地遇到这种情况。
答案 0 :(得分:1)
您应该保留一些状态字段(除了您拥有的字段),它表示处于待处理状态/已取消或已发货的状态。为取消订单再创建一个表将是多余的。尽管您可以使用其他子表来表示订单中的项目。 即使是大型电子商务框架也支持具有各种类型订单的单个表(具有多个子表)。 在你没有特别要求之前,不要去额外的桌子 仅供参考 https://www-01.ibm.com/support/knowledgecenter/SSZLC2_8.0.0/com.ibm.commerce.database.doc/database/orders.htm 只是看一看,看看你可以做大部分吗
答案 1 :(得分:0)
您可以看到它的数据库规范化(http://holowczak.com/database-normalization/)。
设计数据库表并不是一项简单的工作,有多重含义。
您的问题的正确答案由标准化过程提供。