【发布时间】:2014-04-10 21:27:47
【问题描述】:
我正在重新设计一个旧数据库,该数据库一开始很小,现在由于系统更改发生时的多年快速修复而变得非常臃肿和缓慢。 不管这次设计得多么好,当然会有无法预料的变化,所以我正在寻找一些关于如何最好地为这些变化做好准备的一般提示,以及关于我是否走在正确轨道上的一般建议。 我是软件开发/数据库设计领域的新手,所以如果这里有一些明显的问题或者我有点太模糊,请原谅我......我正在尽力:)
具体一点;
将在网站上进行预订。在预订时,可能会添加一些额外/要求,例如预订了一个停车位 - 用户将指出是否需要残疾人空间。 我将创建另一个“DisabledSpacesRequired”表,其中包含一列 - 需要禁用空间的那些的 bookingID。这比在预订表中显示是否需要空间的标志“更好”吗?
同样,预订可能会被取消 - 因此会有一张取消预订的表格。为了稍后搜索,最好简单地在取消的预订表中搜索 bookingID 吗?或者在预订表中有一个标志表明它是否被取消? (无论如何,'CancelledBookings' 表都是必需的,但是否也应该包括一个标志?)
让我想到这些问题的原因是数据库中目前似乎有很多附加组件 - 例如。有一个“订阅者”表,还有一个稍后添加的“订阅者TwitterHandles”表 - 以这种方式分离订阅者类型是一种好习惯吗?或者在现有表中添加标志?
我已经查看了一些类似的问题并经过 Implementing Review flags in Databases; best practices 我认为最好将变量分开,为将来可能发生的变化做准备。 (例如,我们可能想要添加一些与所需的残疾人停车位相关的信息。)
希望我很清楚 - 非常感谢任何建议。
【问题讨论】: