2015-08-18 1 views
0

Я новичок в рельсах, пришедших из Symfony (который был вдохновлен Rails).Ссылочная целостность в приложениях Rails

Я привык к определению моей схемы базы данных в полном объеме, и убедиться, что мои таблицы в 3NF, при необходимости 4НФА и т.д.

я не мог найти способ явно указать CONSTRAINTS на уровне базы данных, и после поиска в Интернете я столкнулся с несколькими сообщениями, такими как этот: Hacked Ref Integrity, который оставил меня просто изумленным.

По общему признанию, статья, к которой я привязана, довольно старая, и, надеюсь, к настоящему времени все могло бы улучшиться.

Отсутствие RI в рельсах заставляет весь каркас казаться довольно дилетантским по сравнению с Symfony, который он вдохновил.

Пожалуйста, скажите, что это не так ...

ответ

1

Первоначальный подход рельсов был поставить себя ответственность за это в домене приложения. Это был сознательный компромисс, и вы найдете много дискуссий по этому поводу, если вы его найдете

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

В статье вы упомянули also shows, вы можете явно указать много ограничений в миграции с нормальной миграции:

http://guides.rubyonrails.org/active_record_migrations.html#foreign-keys

add_foreign_key :articles, :authors 

Или вы можете пойти один шаг дальше и использовать расширения, такие как schmea plus gem