2009-05-31 253 views
0

对于被认为是最佳实践的ER模型中的每个属性,是否使用一个数据库列?数据库设计,单个字段中的多个属性

我在遗留代码上进行维护,并且看到很多多属性,以及业务逻辑挤入单个数据库列,我不知道是否有任何充足的理由这样做。

示例使用整数值的前缀(例如,前两位数字表示客户状态的客户ID)和以下数字(客户的实际ID)。因此将两个属性存储在一个字段中。另一个例子是,对于已经结束业务的客户使用否定客户ID:因此还存储关于客户是否活跃的信息。等等

回答

3

在一列中存储多条信息违反了第一范式,因此在关系数据库中被认为是非常糟糕的。

+0

我向上投票,但在客户Id的情况下,也许这就是业务如何识别他们的客户,而TX123与CA123不同。在那种情况下,我可以把它放在一列中。当客户移动状态时将取决于更新的语义等。 – 2009-07-15 06:03:47

1

你在那里听起来像是每日WTF中的新条目的应用程序,而不是一个明智的数据库设计。在考虑这样的事情之前,请阅读数据库规范化,并保存自己的头痛。

1

在列中存储多个字段时会发生许多问题。例如,假设您需要更新此列,首先您将'ab'用作客户状态,但决定将其更新为'cd'。当多个字段存储在一列中时,这会变得非常混乱。

您应该结帐数据库标准化以更好地理解这一点。 http://en.wikipedia.org/wiki/1NF

相关问题