【发布时间】:2015-06-06 21:02:07
【问题描述】:
所以我正在尝试学习一些基本的数据库设计原则,并决定下载一份USDA 提供的sr27 数据库副本。该数据库正在存储有关食物的营养信息,以及有关这些营养价值如何获得的统计信息。
当我第一次开始这个项目时,我的想法是:嗯,我希望能够搜索食物名称,并且我可能想要对你最常见的营养价值(如卡路里、蛋白质、脂肪)做一些基本的统计建模等等。所以,想法很简单,只需制作 3 个如下所示的表格:
- 食物名称一张表
- 常见营养价值表(与名称的 1-1 关系)
- 其他营养价值的表格(与名称的 1-1 关系)
但是,尚不清楚这是否有必要。根据以下想法对列(或值)进行分区是否有任何收获:我喜欢对名称进行搜索,所以让我们将其保留为一张表以减少开销,我喜欢对常见营养价值进行数据计算,所以让我们保留它作为另一张桌子。 (问题 1)或者正确的索引是否使这个没有实际意义?
我的下一个问题是:美国农业部到底为什么决定使用 12 张桌子?这是否被认为是良好的数据库设计实践,或者合并很多这些表会更好? (此节选摘自上面 USDA 链接中提供的 PDF,第 29 页)
【问题讨论】:
标签: sql postgresql database-design