有没有理由,不要让AbpUsers.tenantId成为外国人?

问题描述 投票:1回答:1

我正在查询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

正如预期的那样,即使初始内容构建器正在运行,我的整个应用程

aspnetboilerplate
1个回答
0
投票

密钥的存在主要是为了保护数据库的引用完整性。如果您没有启用级联更新或级联删除选项,则可能会删除此密钥,以便让不知道自己在做什么的人更容易删除。

© www.soinside.com 2019 - 2024. All rights reserved.