metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-07-30 08:07 pm

Рельсы и констрейнты в БД

http://guides.rubyonrails.org/migrations.html#active-record-and-referential-integrity
"The Active Record way claims that intelligence belongs in your models, not in the database. As such, features such as triggers or foreign key constraints, which push some of that intelligence back into the database, are not heavily used."

В ActiveRecord червь не рекомендует делать констрейнты в БД. Это огорчение, т.к. например, я сломал к хуям (т.е. до невозможности вообще хоть что-либо сделать из UI) хипстерское веб-приложение одним SQL-запросом :)

[identity profile] bydl0coder.livejournal.com 2013-07-30 05:41 pm (UTC)(link)
Есть еще уличная магия - обработать и показать нетупо. Не все владеют, конечно.

[identity profile] sergiej.livejournal.com 2013-07-30 05:51 pm (UTC)(link)
Но возни с этим столько, что имхо в большинстве случаев проще побеспокоиться о качестве данных ДО инсертов.
Постоянно сталкиваюсь с ситуацией, когла приложение "ожидало" что на базе будет констрейнт. Потом криворукие снимают консрейнт, потому что бизнес задолбал и "разрешил" дубли, потому что могут, а в приложение залезть не могут. Так что обработка консистентности данных на уровне приложения это ещё и буфер от хитрозадых бизнесов