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-запросом :)
develop7: (dero)

[personal profile] develop7 2013-07-30 10:02 pm (UTC)(link)
а ещё если БД приложения удалить, то тупые хипстерские рельсы её обратно не поднимают, представляешь?
Edited 2013-07-30 22:02 (UTC)

[identity profile] theiced.livejournal.com 2013-07-30 11:02 pm (UTC)(link)
я ему тоже самое сказал ;]

>[1:45:34 PM] Andrew Kirilenko: если крокодила пустить
>[1:45:39 PM] Andrew Kirilenko: то он и drop database сделает
>[1:46:15 PM] Andrew Kirilenko: ну вообще тут тоже самое что и динамической типизацией
>[1:46:21 PM] Andrew Kirilenko: надо чернягу не творить явную
>[1:46:26 PM] Andrew Kirilenko: и всё будет работать заебис

[identity profile] bydl0coder.livejournal.com 2013-08-01 03:42 pm (UTC)(link)
Дропнет, и напишет, что все надо делать на перле.

[identity profile] metaclass.livejournal.com 2013-07-31 05:31 am (UTC)(link)
А вот например, пользователю на уровне БД можно дать права только на Insert и только в одну таблицу. Без всяких "удалить базу" и прочего там.
develop7: (dero)

[personal profile] develop7 2013-07-31 09:17 am (UTC)(link)
Я когда-то баловался, ещё на пхп. В итоге оказалось удобнее реализовывать ограничения в приложении — и гибче, и проще деплоить, и проще допиливать.
develop7: (dero)

[personal profile] develop7 2013-07-31 09:37 am (UTC)(link)
Вообще это всё имело бы смысл обсуждать, если бы юзеры вашего приложения работали с БД из SQL-клиента, а не из веб- или десктоп-морды.
Edited 2013-07-31 10:08 (UTC)

[identity profile] metaclass.livejournal.com 2013-07-31 10:46 am (UTC)(link)
Вообще, десктоп-морда у меня - это SQL-клиент, только облагороженный до состояния "может пользоваться любой человек".
develop7: (dero)

[personal profile] develop7 2013-07-31 12:16 pm (UTC)(link)
таки у ваших юзеров аутентификация сервером БД? тогда да, иначе чем GRANTом, будет очень сложно.