Рельсы и констрейнты в БД
Jul. 30th, 2013 08:07 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
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-запросом :)
"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-запросом :)
no subject
Date: 2013-07-30 05:37 pm (UTC)Зато при их наличии гарантированно, что внешние псы ходящие в базу, приложение не попортят.
no subject
Date: 2013-07-30 05:41 pm (UTC)Расстреливать сразу
no subject
Date: 2013-07-30 05:45 pm (UTC)no subject
Date: 2013-07-30 05:48 pm (UTC)no subject
Date: 2013-07-30 07:25 pm (UTC)no subject
Date: 2013-07-30 07:31 pm (UTC)no subject
Date: 2013-07-31 09:40 am (UTC)no subject
Date: 2013-07-31 09:44 am (UTC)no subject
Date: 2013-07-30 07:45 pm (UTC)Собственно целостность можно кодом контролировать, в.т.ч. отложено - искать и чистить битые связи. Главное в базу никого не пуcкать. Ну как вариант конечно, особенно когда за сроки мозг ебут, а это практически всегда.
no subject
Date: 2013-07-30 07:53 pm (UTC)no subject
Date: 2013-07-30 08:02 pm (UTC)no subject
Date: 2013-07-31 01:39 am (UTC)no subject
Date: 2013-07-31 10:57 am (UTC)no subject
Date: 2013-07-31 11:09 am (UTC)no subject
Date: 2013-07-31 11:16 am (UTC)Так делать тоже не надо. Делать исключения только за очень большие деньги.
no subject
Date: 2013-07-31 11:19 am (UTC)no subject
Date: 2013-07-31 12:22 pm (UTC)Что это он новомодный. Очень даже старый.
(no subject)
From:no subject
Date: 2013-07-30 07:53 pm (UTC)no subject
Date: 2013-07-30 07:59 pm (UTC)может например удалятся через настраиваемое время (n-лет) после пребывания в статусе "как бы удалено". Или вообще не удаляться. Это уж как юзеру угодно будет, схему жизненного цикла объекта пускай правит, где-то оно надо, где-то - мешает, по ситуации. Но вообще сама возможность удаления в ситуация когда связей уже пиздец сколько и oracle/mssql ебанётся на каком-нибудь случае.
no subject
Date: 2013-07-31 01:38 am (UTC)no subject
Date: 2013-07-30 08:03 pm (UTC)А самого себя инстансов так 100 если, да все на одну базу?
no subject
Date: 2013-07-30 08:05 pm (UTC)"самого себя инстансов" - это ты сессии что-ли так обозвал? Или шо? А что, у вас кол-во подключений чем-то лимитировано, после цифры 20 например перестаёт работать? Или откуда такие вопросы?
no subject
Date: 2013-07-30 08:12 pm (UTC)no subject
Date: 2013-07-31 02:00 pm (UTC)no subject
Date: 2013-07-31 07:18 pm (UTC)Заодно снимается необходимость требовать много всяких ненужных BDA длябы оно работало.
А то сначала напишут софт который для маломальско-нормальной работы требует сотню крокодилов, а потом пишут постики про то, что крокодилы у клиентов некачественные.