Database design 数据库设计2个可空列还是1个多用途列?

Database design 数据库设计2个可空列还是1个多用途列?,database-design,Database Design,作为实习生,我负责一个相当大的项目,我开始质疑我最初的一些决定,但我不确定如何采取适当的措施来解决这些问题 业务逻辑: Load可以有一个Distance的值,它是一个整数值或者可以有一个位置指示面板点“P1”、“P2”、“P3” 问题: 我应该有两个可为空的字段,还是一个只解析两个字段的字段,看看它是否是整数?如果它是一个整数,我知道它是一个距离值,如果不是,它是一个位置值。两者都有好处吗 我读过避免可为空的字段的书,但同时多用途字段听起来也不是最好的决定。我倾向于多用途,但我真的不确定如何进

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

业务逻辑:

Load
可以有一个
Distance
的值,它是一个整数值或者
可以有一个
位置
指示面板点“P1”、“P2”、“P3”

问题

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


我读过避免可为空的字段的书,但同时多用途字段听起来也不是最好的决定。我倾向于多用途,但我真的不确定如何进行正确的数据库设计。

就我个人而言,我有两个可为空的字段,这将使您避免以后必须进行的额外代码工作。当出于某种原因(报表或其他原因)外推或计算数据库行时,您不必检查列是否为varchar或int,这样您就可以快速地处理数据

可为空的字段可能会违反标准数据库设计,但在现实世界中,由于大多数数据库至少有几个设计决策有问题,很难找到“完美”的数据库。
但是,最后,做任何对您有用的事情,以及您认为最省力的维护工作。

是否最好将整数列设置为必需的,并检查零而不是空?我假设业务逻辑不要求它为null,它只是没有值。感谢您的回答,尽管大多数人认为这有助于我做出一个我觉得舒服的决定。嗯,回顾我的个人经验,我认为最好将0改为null,因为有时候DBNULL会在您的过程或查询中抛出错误,我花了一段时间才明白原因。所以,是的,默认值0对你的专栏来说是很好的,我还是这么认为。。