数据库设计帮助 - 在线结账项目

时间:2012-03-07 06:40:47

标签: mysql database-design

我正在设计一个在线结账的数据库作为项目。这是我制作的第一个数据库,所以对我来说很容易。

无论如何,我有“帐户”,“订单”,“购物车”和“sku”表。帐户包含送货信息,姓名,电话,电子邮件等。主键是accountNumber。订单包含结算信息。它的外键是accountNumber,它的主键是OrderID。购物车只有2列orderID和skuNumber。 OrderID是外键,skuNumber是主键。 SKU有4列-skuNumber,quanity,price,unit和totalPrice。 skuNumber是外键和主键。

我的问题是 - 我目前有这种设置的方式,一次只能订购1项sku。你如何设计这种不同的方式,这是不必要的?我知道我可以做sku1,sku2等,但这似乎是违反最佳做法的。

谢谢!

1 个答案:

答案 0 :(得分:1)

此设计的数据库不是normaized,而不是SKU表,您需要两个额外的表,因为您只需要分离产品详细信息(Name,{来自订单详细信息的{1}}等等,因此您必须添加以下表格:

<强>产品:

  • price
  • Id
  • Name
  • ...

另一个包含以下列的PriceOrderItems

  • SKUItems订单表的外键。
  • OrderID产品表的外键。
  • ProductId
  • ...

我不明白Quantity是什么,但如果它是某种产品类型,您可以添加一个包含产品类型的额外表SKU,此表包含例如一个名为的产品类型ProductTypes: Id, name然后您可以向SKU添加ProductTypeId,这样您就可以拥有以下内容:

Products

对于 ProductTypeId | Name ------------------------ 1 SKU 表:

Products