如何为具有不同更新频率的产品规划数据库

时间:2014-04-04 07:23:21

标签: database-design

我们正在建立一个电子商务网站。我们有10-50种产品可供销售,但我们的用户也可以销售他们自己的产品。并且要求所有我们自己的产品和用户产品都来自买家的相同购买流程。

我有一个问题,即我们的产品库存不受限制,但用户产品可能会有限制。

所以问题是如何减轻将所有这些产品存放在同一张桌子上的痛苦。 我的意思是,用户可能拥有库存数量为1的产品,此产品记录在1次销售后将无用。

到目前为止,这是我设计的简明描述

地址(AddressId [PK])< 订单(OrderId [PK],AddressId [FK])< OrderLines (OrderLineId [PK],OrderId [FK],ProductId [FK])> 产品(ProductId [PK])< ProductPrices (ProductPriceId [PK],CurrencyId [FK],ProductId [FK])>的货币(CurrencyId [PK])

根据产品的销售地点,产品可能有多种价格。

我应该为不同的目的划分产品表。比如说;

  • SecondHandProducts,
  • < SiteName>产品,
  • CorporateProducts。

(如果是这样,我怎么能实现这个目标?)

因此,不断增长的二手产品表不会影响我的核心产品表(< SiteName> Products)。

或者我在思考这个问题,并且应该将所有产品存储在同一张桌子上。

PS。这些产品之间没有任何区别

1 个答案:

答案 0 :(得分:0)

正如您所说,产品之间没有区别,因此无需单独对其进行建模。有一个Product表将包含您的所有产品,但有一个名为ProductCategory的单独表,它将告诉您Product表中的产品类型。我会将其建模如下:

CREATE TABLE Products
(
    ProductId int PRIMARY KEY,
    ProductCategoryId int, //FK

    // Other product attributes
)

CREATE TABLE ProductCategory
(
    ProductCategoryId int PRIMARY KEY,
    ProductType,  <choose your own data type>
    ProductCategoryDescription, <choose type>
    // Other product category attributes
)