当该表上已有记录时,在表中添加FK字段

时间:2015-03-03 18:11:57

标签: mysql database database-design

假设FB之前没有在他们的用户表中使用gender_id,突然他们决定将其添加为必填字段。

如果所有其他记录都没有gender_id值,那么当他们在同一个表用户中将此字段添加为fk时会发生什么情况。事实上,mysql不会让你这样做,直到你有一个gender_id值来添加到其他记录。

当然他们无法删除所有用户来执行此操作,我的问题是,此案例的最佳解决方案是什么?

1.我正在考虑在新表中添加此字段并使用gender_id引用user_id,因此对于传入的用户必须具有gender_id。

2.为性别添加新记录,如0 =男性,1 =女性,2 =无符号,因此默认情况下为所有其他用户添加无符号值(2)

你的意见是什么?

1 个答案:

答案 0 :(得分:1)

这正是我要做的。添加默认值为0的FK字段,我喜欢使用0作为未知情况,然后可能1 =男性,2 =女性。我不允许在字段中使用NULL,并且如果没有提供值,则始终将其默认为0.