我正在设计一个作为项目在线结账的数据库。这是我创建的第一个数据库,所以对我来说很容易。无论如何,我有表“帐户”,“订单”,“购物车”和“sku”。帐户包含运送信息,姓名,电话,电子邮件等。主键是accountNumber。订单保存帐单信息。它的外键是accountNumber,它的主键是OrderID。购物车只有2列 - orderID和skuNumber。 OrderID是外键,skuNumber是主键。 SKU有4列 - skuNumber,数量,价格,单位和totalPrice。 skuNumber是外国和主键。数据库设计帮助 - 在线结帐项目
我的问题是 - 我目前有这种设置的方式只能一次订购1件SKU。你如何设计这种不同的方式,这是没有必要的?我知道我可以做sku1,sku2等,但是这看起来好像违背了最佳实践。
谢谢!
我应该对OrderItems表中的主键有什么要求?另外,SKU就像条形码。 – cmorris1441 2012-03-07 16:28:43
@ cmorris1441,那么,你有两个选择,第一个是使用两个字段'ProductId'和'OrderId'作为主键,第二个是使用[Surrogate Key](http://en.wikipedia.org/wiki)/Surrogate_key)就像'OrderItemId'。 – 2012-03-08 00:37:23
我不喜欢OrderItemTable中的productId的想法。如果产品更改了产权,价格或其他财产,该怎么办?OrderItem可以在提交订单后持续数月,甚至在历史中。那将是一个令人误解的订单历史页面 – 2017-10-09 11:17:06