Есть ли причина, чтобы не делать AbpUsers.tenantId ForeignKey? - PullRequest
1 голос
/ 28 марта 2019

Я запрашивал у 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 голосов
/ 28 марта 2019

Ключи существуют главным образом для защиты ссылочной целостности базы данных. Если у вас нет параметров «Каскадное обновление» или «Каскадное удаление», возможно, этот ключ был удален, чтобы упростить удаление объектов для тех, кто не знает, что делает.

...