是否有理由不将AbpUsers.tenantId用作ForeignKey?

时间:2019-03-28 14:14:48

标签: aspnetboilerplate

我正在查询SQL Server以获取所有引用到其他列的列。我偶然发现,“ tenantId”列(表“ AbpUsers”)未引用到AbpTenants.Id。

我要求我的一些同事“用来”了解aspnetboilerplate,只是为了澄清。每个人都和我一样感到惊讶。

仅出于测试目的,我通过“ Update-database”创建了一个新数据库。在运行该应用程序之前,我手动添加了“丢失的”外键引用。和?没啥事儿。没什么不好的事。一切正常,就像没有外键引用...

ALTER TABLE [dbo].[AbpUsers]  WITH CHECK ADD  CONSTRAINT [FK_AbpUsers_AbpTenants_TenantId] FOREIGN KEY([TenantId])
REFERENCES [dbo].[AbpTenants] ([Id])
GO

ALTER TABLE [dbo].[AbpUsers] CHECK CONSTRAINT [FK_AbpUsers_AbpTenants_TenantId]
GO

正如预期的那样,即使最初的内容生成器正在运行,我的整个应用程序也能正常工作。

1 个答案:

答案 0 :(得分:0)

密钥的存在主要是为了保护数据库的引用完整性。如果您没有启用“级联更新”或“级联删除”选项,则可能已删除了此密钥,以使不知道自己在做什么的人可以更轻松地进行删除。