1

嗨,我已经开始将访问权限转移到 mysql 中,我想知道是否存在约束或者我可以使用什么东西来使列不存在null并且仍然有空值?

这不是我自己的数据库,如果是我只会填写空白字段,然后将列更改为 not null

4

1 回答 1

1

是的,有多种方法可以在不使用空值的情况下对缺失信息进行建模。

您可以选择一个值来表示缺失。很难分类,所以这里有几个例子。对于end_date开放式期间的属性(即已开始但正在进行中且尚未完成),请使用遥远的未来日期,例如 9999-12-31. 对于person_middle_name属性,Joe Celko 建议将元数据值放在双花括号中,例如{{NK}}“未知”、{{NA}}“不适用”等。

另一种对缺失信息建模的直观方法是表中没有一行。如果员工未受薪,则不要在Payroll表中为他们添加一行,从而使他们与当前没有收到工资的受薪员工不同,表salary_amount中的 a 表示为零Payroll

另一种方法是在表中存在一行。您可以有表SalariedUnsalariedSalaryUnknown确保每个员工在其中一个表中都有一行(可能在 MySQL 中使用触发器和/或过程强制执行)。

于 2011-11-08T10:39:13.023 回答