【发布时间】:2012-12-19 02:28:56
【问题描述】:
我有一个数据库和一个编辑数据库的应用程序
我有一个名为 ADDRESS (ID, STREETID, NUMBER) 的地址表
我有一个名为 STREET (ID, STREETNAME, CREATIONUSERID) 的街道名称表
我还有一个名为 USER (ID, USERNAME, PASSWORD) 的用户表
我的表 STREET 中的街道名称已经填满。 该表被用户用作查找表 在我的应用程序的某处输入地址(字段 ADDRESS.STREETID), 但有时用户必须输入一条新街道 将插入 STREET 以供进一步使用。 当用户在我的桌子上添加一条街道时,我希望能够 跟踪哪个用户进行了添加。
我现在有两个选择:
第一个:创建一个虚假用户,其中 STREET 的默认街道 将引用然后创建一个外键约束 (STREET.CREATIONUSERID 指 USER.ID) 用于创建的新街道
第二个:不创建外键约束,将 CREATIONUSERID 留空 对于 STREET 的默认街道并仅针对新街道进行更新 创建街道以跟踪添加每个街道的用户
哪个更好,为什么?
【问题讨论】:
标签: database-design foreign-keys relationship