在ER模型中,每个属性使用一个数据库列是否被视为最佳实践?
我对遗留代码进行维护,我看到很多属性,以及业务逻辑被压缩到单个数据库列中,我想知道是否有任何理由这样做。
示例是对整数值使用前缀,例如前两位代表客户状态的客户ID,以及后面的数字,即客户的实际ID。因此在一个字段中存储两个属性。另一个例子是对已经结束业务的客户使用否定客户ID:s,因此也存储关于客户是否活跃的信息。等等。
答案 0 :(得分:4)
在列中存储多条信息违反了第一个普通表单,因此在关系数据库中被认为非常糟糕。
答案 1 :(得分:1)
你有什么听起来像是在每日WTF的新条目申请,而不是一个合理的数据库设计。在考虑这样的事情之前,请阅读数据库规范化,并避免头痛。
答案 2 :(得分:1)
在列中存储多个字段时会出现许多问题。例如,假设您需要更新此类列,首先您使用'ab'作为客户状态,然后决定将其更新为'cd'。当多个字段存储在一列中时,这将变得非常混乱。
您应该检查数据库规范化以更好地理解这一点。 http://en.wikipedia.org/wiki/1NF