Нужно ли использовать связи в таблицах MySQL, если используешь ORM?

Использую для своего проекта собственную ORM DomainObjectMapper, все включаемые объекты, необходимые для создания содержащих их, подгружаются отдельным запросом (не подзапросом MySQL). Вопрос - надо ли использовать в таких случаях связи? Я имею ввиду Foreign key (InnoDB).
К примеру, подгружается статья - ArticleMapper при создании объекта вызывает CatalogsMapper, и по указанному в данных статьи catalog_id получает объект каталога.
Нужно ли в таких случаях связывать поле articles.catalog_id с полем catalogs.id в самой базе данных? Или это нарушает логику работы ORM?
  • Вопрос задан
  • 215 просмотров
Решения вопроса 1
supervaleha
@supervaleha
Web-development
Имхо нужно. Долгое время сам не юзал, ввиду программного контроля целостности - но все-таки пришел, путем своих ошибок, к применению ключей.

Так или иначе хуже они тебе не делают, а лишний слой контроля целостности может очень помочь в критичной ситуации.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
VladimirAndreev
@VladimirAndreev
php web dev
Если внешние ключи в таблицах мешают ORM - что-то не так с ORM...
А ключи лучше ставить, иначе потом будет тебя ждать "счастье" с нарушенной целостностью данных.
Ответ написан
Комментировать
@Kravalg
Дело в том, что, как и говорили все ответившие, следить за целостностью данных можно как программно, так и с помощью конструкций баз данных. Как думаете предпочтительнее использовать нативные решения в продуктах либо дописывать отдельным кодом?

Я думаю, что ответ очевиден. За целостностью данных должна следить БД.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы