我想设计一个名为 Fruit 的表,其中存储一种水果的名称、价格和来源。样本数据:
(Apple, 100c, SuperMarket1)
(Orange, 101c, SuperMarket1)
(Apple, 99c, SuperMarket2)
(Orange, 103c, SuperMarket2)
我将 SuperMarket1 的 Orange 价格指定为官方价格,SuperMarket2 的 Apple 价格指定为官方价格。
目前,Source 不是表的主键,因此,所有非官方条目都不会显示。如果我想存储非官方价格,我需要将 Source 变成主键的一部分。要将条目指定为官方,然后我需要使用 Source=Official 输入额外的条目,或者创建一个指定为官方的列?
我的目标是:
- 能够存储所有可用的价格,而不是必须在一张表中。
- 官方条目的来源应该很容易识别。
- 能够以最少的联接数查询官方。
- 一种水果的官方价格不能超过一个。
- 水果的集合并不小(水果只是一个例子)并且不断发展。维护一个额外的表来存储每种类型的官方 Source 可能是一个巨大的负担。
对干净的设计有什么想法吗?