Нужно ли вам определять отношения в БД, если вы используете ORM? - PullRequest
0 голосов
/ 19 июня 2019

Я довольно новичок в Postgres и очень плохо знаком с SQLAlchemy, поэтому прошу прощения, если это глупый вопрос.

Я потратил некоторое время на поиски в Google и чтение документации по SQLAlchemy, но, похоже, я не могу найти прямой ответ.

Итак, мой вопрос такой ..

Поскольку отношения определяются в коде при использовании ORM, при условии, что структуры таблиц базы данных определяют необходимые поля столбцов, нужно ли вам на самом деле определять ограничения ForeignKey и в самой базе данных?

Я знаю, что ограничения могут помочь в обеспечении целостности, но должны ли они присутствовать для успешной реализации ORM?

1 Ответ

0 голосов
/ 19 июня 2019

Ограничения по внешнему ключу не нужно , чтобы иметь успешную реализацию ORM.Я думаю, что для ORM чаще всего пытаются самим управлять такими вещами, а не следовать рекомендациям базы данных.

Лично у меня проблема с этим подходом.Я обычно имею дело с корпоративными базами данных, у которых есть много программ, написанных на разных языках, обращающихся к базе данных.Другие программы просто не собираются удалять строки и каскадировать удаления, вызывая ORM, даже если это возможно.

Некоторые ORM поддерживают «устаревшие» базы данных. Это означает, что ORM можно настроить для работы с базами данных, в которых уже реализованы произвольные ограничения, первичными ключами, имеющими несколько столбцов, а не номер идентификатора для таблицы, каскадными обновлениями и удалениями, ии т. д.

В любом случае база данных принадлежит бизнесу, а не ORM.Поддержка этой идеи также может быть разной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...