数据库设计2个可空列或1个多用途列?

时间:2014-07-09 23:06:40

标签: database-design

作为一名实习生,我负责一个相当大的项目,我开始质疑我的一些原始决定,但我不确定如何采取适当的措施来解决这些问题。

业务逻辑:

Load可以有Distance的值,这是一个整数值 OR 它可以Position表示面板点“P1”,“ P2“,”P3“。

问题

我是否应该有两个可以为空的字段或一个字段,我只需解析两个字段,看它是不是整数?如果它是一个整数,我知道它是一个距离值,如果不是,它就是一个位置值。两者都有优势吗?

我读过以避免可空字段,但同时多用途字段听起来也不是最好的决定。我倾向于多功能,但我真的不确定我应该做些什么来进行正确的数据库设计。

1 个答案:

答案 0 :(得分:2)

就个人而言,我有两个可以为空的字段,它只会让你免于以后需要做的额外代码工作。当出于某种原因(报告或某事)推断或计算数据库行时,您不必对列进行检查,询问它是否为varchar或int,这样您就可以快速地操作数据。

可空字段可能违反标准数据库设计,但在现实世界中,很难获得“完美”数据库,大多数人至少有一些可疑设计决策。 最后,做任何适合你的事情以及你认为会给你带来最少的维护痛苦。