1

假设我有一个由 3 个主要项目组成的产品。产品为Laptop,项目为:螺丝(id、code、description)按钮(id、code、description)覆盖范围(id、code、description、color)。

每台笔记本电脑都由这些项目的任意组合组成。

  1. 我可以将所有内容放入一个表“材料”并添加一个名为“类型”的属性来区分每个项目,但是会有很多行具有空的“颜色”值。

    我想到了专业化:材料(id、代码、描述),然后都是它的子类。但是按钮和螺丝类与母类没有什么不同。

    那么你的想法是什么?

  2. 我想添加单价属性。我需要实际价格,并且我想每月保留旧价格的历史记录(即每个价格都绑定到 MM/YYYY)。

    我可以创建一个价格表:

    prices (id, price, date)
    

    但是我应该在材料表中保留实际价格=当前价格还是仅仅在价格表中?

4

1 回答 1

0
/* keep your general product specs here: */
PRODUCT
id primary key
type
code
description
standard_price


/* or add a subtype table for some of them: */
COVERAGE_PRODUCT
id pk fk PRODUCT
colour 


/* products are composed of other products: */
PRODUCT_STRUCTURE
part_of not null references product(id),
composed_of not null references product(id)
primary key (part_of, composed_of)

您可以将历史定价保留在数据仓库中,或添加 product_price 表。在这种情况下,请从产品中删除“standard_price”。

PRODUCT_PRICE
product_id fk product(id)
from_date
price
to_date (nullable)
primary key (product_id, from_date)
于 2013-03-04T20:51:48.243 回答