1

我有一个数据库和一个编辑数据库的应用程序

我有一个名为 ADDRESS (ID, STREETID, NUMBER) 的地址表

我有一个名为 STREET (ID, STREETNAME, CREATIONUSERID) 的街道名称表

我还有一个名为 USER (ID, USERNAME, PASSWORD) 的用户表

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

现在我想到了两个选项:

第一种:创建一个虚假用户,STREET 的默认街道将引用该用户,然后为创建的新街道创建一个外键约束(STREET.CREATIONUSERID 引用 USER.ID)

第二:不创建外键约束,为 STREET 的默认街道保留 CREATIONUSERID 为空,并仅为创建的新街道更新它以跟踪添加每个街道的用户

哪个更好?为什么?

4

2 回答 2

3

最好使用外键。它将强制引用完整性

检查链接以了解外键的优点

于 2013-01-04T16:21:57.860 回答
0

当您的系统的某个用户不再是一个用户并且必须从您的 USER 表中删除时,您打算做什么?

于 2013-01-04T16:19:22.347 回答