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

Database design 如何为具有不同更新频率的产品规划数据库,database-design,Database Design,我们正在建设一个电子商务网站。我们有10-50种产品要销售,但我们的用户也可以销售他们自己的产品。我们要求所有我们自己的产品和我们的用户的产品将从相同的买家购买过程 我有一个问题,我们的产品有无限的库存,但用户的产品可能会有限制 所以问题是,我如何才能从将所有这些产品储存在同一张桌子上的痛苦中解脱出来。 我的意思是,用户可能有一个库存量为1的产品,此产品记录在1次销售后将无效 以下是我到目前为止的设计简介 地址(AddressId[PK])订单(OrderId[PK],AddressId[FK]

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

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

所以问题是,我如何才能从将所有这些产品储存在同一张桌子上的痛苦中解脱出来。 我的意思是,用户可能有一个库存量为1的产品,此产品记录在1次销售后将无效

以下是我到目前为止的设计简介

地址(AddressId[PK])订单(OrderId[PK],AddressId[FK])订单行(OrderLineId[PK],OrderId[FK],ProductId[FK])>产品(ProductId[PK],CurrencyId[FK],ProductId[FK])>货币(CurrencyId[PK)

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

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

  • 二手产品
  • 产品
  • 公司产品
(如果是,我如何实现这一点?)

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

或者我想得太多了,应该把所有的产品都放在同一张桌子上


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

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
)
创建表格产品
(
ProductId int主键,
ProductCategoryId int,//FK
//其他产品属性
)
创建表ProductCategory
(
ProductCategoryId int主键,
产品类型,
产品类别说明,
//其他产品类别属性
)

是的,但是大量的二手产品不是会不必要地减少我的主要产品的查询时间吗?我们不会创造太多的主要产品,我们希望有大量的其他产品。所以,当我试图查询一些关于主要产品的信息时,如果其他产品分开,会不会更快?不是真的。例如,如果您有一个名为“Main”的类别,并且在ProductCategoryId列上有一个关于产品的索引,那么您将以最理想的方式返回结果。