Примечание: этот вопрос больше касается дизайна базы данных и SQL сервера, чем указано c ORMDB, как EF Core.
У меня есть схема базы данных, которая выглядит следующим образом:
При использовании EF Core Migration все операторы SQL могут выполняться до самого последнего ограничения (FK_BookReleases_Nicknames_NicknameId
). Можно добавить предыдущий FK FK_BookReleases_Books_BookId
.
Я получаю сообщение об ошибке (как и многие другие статьи о SO):
Введение ограничения FOREIGN KEY 'FK_BookReleases_Nicknames_NicknameId' для таблицы 'BookReleases 'может вызвать циклы или несколько каскадных путей. Укажите ON DELETE NO ACTION или ON UPDATE NO ACTION, или измените другие ограничения FOREIGN KEY.
Мой вопрос: в чем недостаток этого дизайна? Я не могу понять ни под каким логом c такая ситуация случается. И как правильно исправить? Я вижу, что многие предлагали изменить действие ON DELETE
, но не указали c, какой FK и какое другое действие я должен использовать.
Хуже, даже уже прочитал эту статью Я до сих пор не понимаю понять, как это может быть проблемой, и как его предложенное решение вписывается в приведенную выше схему.