2013-01-04 41 views
0

我有一个数据库和编辑数据库参照表没有外键约束

我与被叫地址的地址表(ID,STREETID,NUMBER)

我有街道的表的应用程序名字叫做STREET(ID,STREETNAME,CREATIONUSERID)

我也有我的用户表被叫用户

在我的表STREET街道名称已经填满(ID,用户名,密码)。 该表格被用户用作查找表 ,以在我的应用程序 某处输入地址(字段ADDRESS.STREETID),但有时用户必须输入新街道 ,该街道将被插入到STREET以供进一步使用。 当用户向我的表格添加街道时,我希望能够 跟踪哪个用户进行了添加。

现在有2个选择,我想想:

1:创建一个虚假的用户其中STREET 的默认街道将把然后创建一个外键约束 (STREET.CREATIONUSERID即是指USER.ID)用于创建

第二届新街道:不创建外键约束,离开CREATIONUSERID空 街头的默认街道和更新只为创造新的 街道跟踪每个添加的用户

哪个更好,为什么?

回答

3

这是更好地利用国外key.It将强制实施参照完整性

Check the link for the advantages of foreign key

+0

谢谢你的链接。读它,我只是意识到一个外键可以有NULL值,所以这对我来说是最好的解决方案。我将为CREATIONUSERID创建一个外键约束,同时使它成为'可空' –

0

当系统的某些用户停止为一个用户时,你打算做什么,并且必须从USER表中删除?

+0

我也有一个场USER.STATUS这是用户的状态的标志。如果用户必须删除,我会将其设置为“已删除”。通过这种方式,我保持了这个用户的历史,同时使他无生气。 –