【发布时间】:2011-10-02 05:17:42
【问题描述】:
我正在将一些数据库重新设计成一个包含数据库的数据库,并且我注意到旧数据库的先前设计者喜欢将类别存储在自己的表中。比如有一个tableboats(bid: integer, bname: string, color: integer),在应用中有一个下拉框可以让用户指定小船的颜色,那么就有一个表颜色(cid:整数,cname:字符串)。我不会包括颜色表,只是将颜色作为字符串放在船表中。我意识到这减少了颜色名称的冗余存储,但是将船表与颜色表连接起来所增加的运行时成本“值得”吗?此外,下拉列表中填充了 SELECT cname FROM color 语句,而我会在 SELECT DISTINCT color FROM boats 上定义一个视图来填充下拉列表。
这个例子很简单,但是在我重新设计的系统中这种情况发生了多次,即使对于只有两个选项的类别也是如此。这导致许多表只有 2 个字段。有些只有 1 个字段(我还没有弄清楚它们的用途,但我认为它们只是用来填充下拉列表,实际的表格也包含这些值)。
【问题讨论】: