MySQL规范化,当列依赖于2列时,其中正好有一列为空
在MySQL规范化,当列依赖于2列时,其中正好有一列为空,mysql,rdbms,database-normalization,Mysql,Rdbms,Database Normalization,在Person表中,Citizen_IdentityID或外国人工作许可证将为空 个人ID保存公民ID或外国人工作许可证的值(以不为空的为准) 换句话说,个人ID取决于公民ID或外国人工作许可证的值 我应该如何构建规范化设计 上述实体只是实际用例的简单替换。您只需创建一个表person 有下列栏目的 id int auto increment citizen_id int workpermit_id int name varchar 因此,每当需要在citizen\u id或workpermi
Person
表中,Citizen_IdentityID
或外国人工作许可证
将为空
个人ID
保存公民ID
或外国人工作许可证
的值(以不为空的为准)
换句话说,个人ID
取决于公民ID
或外国人工作许可证的值
我应该如何构建规范化设计
上述实体只是实际用例的简单替换。您只需创建一个表person
有下列栏目的
id int auto increment
citizen_id int
workpermit_id int
name varchar
因此,每当需要在citizen\u id
或workpermit\u id
之间使用一个id时,您只需通过起诉isnull()
来检查它是否存在,但我有其他属性,它们仅依赖于id
,例如IDColor
。我该如何规范化它?这是数据库子类型的反模式。你用谷歌搜索过你的头衔吗?关于“标准化”,您的参考是什么?关于规范化空值,它说了些什么?当存在空值时,您是否在谷歌上搜索过规范化?如果NULL只是另一个值,您将如何规范化?你为什么没提到FDs?FKs与规范化有什么关系吗?PS你的头衔不是你的问题。请用谷歌搜索你的实际问题和标签的许多清晰、准确的具体措辞。如果你还需要问,用其中一个短语作为标题。(你还应该如何研究你的问题或标题?)?编辑标题。用谷歌搜索你的标题和我的第一句话。请回应我之前的评论。编辑你的标题只是其中的一小部分。在做了一大堆其他的事情之后,我在谷歌上搜索了“数据库如何使用空值进行规范化”,我的第三个目标是SO,它有一个答案。(但我怀疑你是否真的想问任何关于正常化的问题。)