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] metaclass.livejournal.com 2013-07-30 06:06 pm (UTC)(link)
Первое предложение звучит как адский болезненный бред. Что имелось в виду?

[identity profile] sergiej.livejournal.com 2013-07-30 06:19 pm (UTC)(link)
Ну если мы говорим о ФК, то вопрос связать два объекта в базе, когда может понадобиться констрейнт? Когда единственная валидная связь это один к одному. А почему он может понадобиться? Потому что кривые ручки создавая НОВЫЙ объект в "этой" таблице (где ФК) вместо того чтобы создать НОВЫЙ же объект в "чужой" таблице, взяли и зарелейтили на существующий, это конкретный фейл на уровне "наплевать на модель данных приложения", констрейнт тут чисто костыль.

[identity profile] bydlorus.livejournal.com 2013-07-30 06:51 pm (UTC)(link)
Вообще не въехал, почему это фк это один-к-одному?

[identity profile] sergiej.livejournal.com 2013-07-30 06:53 pm (UTC)(link)
хорошо, зачем тебе констрейнт на поле с ФК в таблице? Может это я не вьехал.

[identity profile] sergiej.livejournal.com 2013-07-30 06:55 pm (UTC)(link)
А блин я тупой
я про уникальный констрейнт с самого начала туплю. Сорри.

[identity profile] bydlorus.livejournal.com 2013-07-30 06:58 pm (UTC)(link)
А ну слава богу, а то беседа начала приобретать сюрреалистические черты ;-)

[identity profile] sergiej.livejournal.com 2013-07-30 07:03 pm (UTC)(link)
прошу прощения, само собой я ничего не имею против констрента на референс, даже если он обеспечен ORM с базой в сто раз удобнее работать даже просто "посмотреть" когда они расставлены.

[identity profile] metaclass.livejournal.com 2013-07-30 07:05 pm (UTC)(link)
Вот, а я было уже подумал, что мир псоглавцы захватили пока я спал :)

[identity profile] sergiej.livejournal.com 2013-07-30 07:06 pm (UTC)(link)
бъюсь головой об стенку: виноват виноват виноват, впредь буду внимательнее читать сам пост :)