metaclass: (Default)
[personal profile] metaclass
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-запросом :)

Date: 2013-07-30 05:12 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Да ну их нахуй.

Date: 2013-07-30 06:18 pm (UTC)
From: [identity profile] vinslivins.livejournal.com
мы хорошие :)

Date: 2013-07-30 05:19 pm (UTC)
From: [identity profile] sergiej.livejournal.com
С констрейнтами практически всегда больше проблем чем помощи. Если вдруг хочется оставить контроль базе, то потом блин всё равно позаботься завернуть вылетевший на базе констрейнт эксепшн в логику приложения, а это никак не меньше работы чем позаботиться о данных до попытки запихнуть их тупо.

Date: 2013-07-30 05:35 pm (UTC)
From: [identity profile] bydlorus.livejournal.com
С обработкой ошибок всегда больше проблем чем помощи :-)

Date: 2013-07-30 05:38 pm (UTC)
From: [identity profile] sergiej.livejournal.com
Ну можно конечно не обрабатывать, а тупо показать юзеру или бросить обратно по интерморде. Но не думаю что юзер будет доволен таким оборотом событий

(no subject)

From: [identity profile] bydl0coder.livejournal.com - Date: 2013-07-30 05:41 pm (UTC) - Expand

(no subject)

From: [identity profile] sergiej.livejournal.com - Date: 2013-07-30 05:51 pm (UTC) - Expand

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-07-30 05:41 pm (UTC) - Expand

(no subject)

From: [identity profile] sergiej.livejournal.com - Date: 2013-07-30 05:53 pm (UTC) - Expand

Date: 2013-07-30 05:37 pm (UTC)
From: [identity profile] henu3detb.livejournal.com
Лучше пусть в продакшне будет необработанный эксепшн, чем неконсистентные данные, которые боком начнут вылазить через пол года на другой машине на другом континенте. Вот тогда будет точно ребус, откуда оно.

Date: 2013-07-30 05:41 pm (UTC)
From: [identity profile] sergiej.livejournal.com
ну это самое то для бац-бац и в продакшн. Сначала расставляешь констрейнты, потом по факты их вылезания оборачиваешь в приложение. Тоже валидный подход для писателей на коленке.

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-07-30 05:44 pm (UTC) - Expand

(no subject)

From: [identity profile] sergiej.livejournal.com - Date: 2013-07-30 05:55 pm (UTC) - Expand

(no subject)

From: [identity profile] Дмитрий Васильев - Date: 2013-07-30 06:05 pm (UTC) - Expand

(no subject)

From: [identity profile] sergiej.livejournal.com - Date: 2013-07-30 06:08 pm (UTC) - Expand

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2013-07-30 07:08 pm (UTC) - Expand

(no subject)

From: [identity profile] plumqqz.livejournal.com - Date: 2013-07-30 08:56 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-07-30 06:06 pm (UTC) - Expand

(no subject)

From: [identity profile] sergiej.livejournal.com - Date: 2013-07-30 06:19 pm (UTC) - Expand

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-07-30 06:51 pm (UTC) - Expand

(no subject)

From: [identity profile] sergiej.livejournal.com - Date: 2013-07-30 06:53 pm (UTC) - Expand

(no subject)

From: [identity profile] sergiej.livejournal.com - Date: 2013-07-30 06:55 pm (UTC) - Expand

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-07-30 06:58 pm (UTC) - Expand

(no subject)

From: [identity profile] sergiej.livejournal.com - Date: 2013-07-30 07:03 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-07-30 07:05 pm (UTC) - Expand

(no subject)

From: [identity profile] sergiej.livejournal.com - Date: 2013-07-30 07:06 pm (UTC) - Expand

(no subject)

From: [identity profile] henu3detb.livejournal.com - Date: 2013-07-30 06:00 pm (UTC) - Expand

(no subject)

From: [identity profile] sergiej.livejournal.com - Date: 2013-07-30 06:03 pm (UTC) - Expand

Date: 2013-07-30 05:37 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Констрейнты что до базы (в UI), что после базы обрабатываются достаточно однообразно, главное сунуть обработчик в точку через которую запросы ходят.
Зато при их наличии гарантированно, что внешние псы ходящие в базу, приложение не попортят.

Date: 2013-07-30 05:41 pm (UTC)
From: [identity profile] sergiej.livejournal.com
" что внешние псы ходящие в базу, приложение не попортят."
Расстреливать сразу

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-07-30 05:45 pm (UTC) - Expand

(no subject)

From: [identity profile] sergiej.livejournal.com - Date: 2013-07-30 05:48 pm (UTC) - Expand

(no subject)

From: [identity profile] falcrum.livejournal.com - Date: 2013-07-30 07:25 pm (UTC) - Expand

(no subject)

From: [identity profile] sergiej.livejournal.com - Date: 2013-07-30 07:31 pm (UTC) - Expand

(no subject)

From: [identity profile] fraks-nsk.livejournal.com - Date: 2013-07-31 09:40 am (UTC) - Expand

(no subject)

From: [identity profile] sergiej.livejournal.com - Date: 2013-07-31 09:44 am (UTC) - Expand

Date: 2013-07-30 07:45 pm (UTC)
From: [identity profile] zelanton.livejournal.com
А потом удаление записей превращается в ебанный секс, когда структура данных превращается в сеть, где объекты сами на себя ссылаются через 10 разных путей. И хуячь триггеры, процедуры, получай вендор лок. Особенно пиздато, когда в каком-нибудь оракле от всех этих триггеров и процедур приползают блокировки страниц или другое подобное веселье. Или тот же MSSQL с ограничением вложенности рекурсии.

Собственно целостность можно кодом контролировать, в.т.ч. отложено - искать и чистить битые связи. Главное в базу никого не пуcкать. Ну как вариант конечно, особенно когда за сроки мозг ебут, а это практически всегда.

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-07-30 07:53 pm (UTC) - Expand

(no subject)

From: [identity profile] zelanton.livejournal.com - Date: 2013-07-30 08:02 pm (UTC) - Expand

(no subject)

From: [identity profile] fraks-nsk.livejournal.com - Date: 2013-07-31 01:39 am (UTC) - Expand

(no subject)

From: [identity profile] ext_1684112 - Date: 2013-07-31 10:57 am (UTC) - Expand

(no subject)

From: [identity profile] zelanton.livejournal.com - Date: 2013-07-31 11:09 am (UTC) - Expand

(no subject)

From: [identity profile] ext_1684112 - Date: 2013-07-31 11:16 am (UTC) - Expand

(no subject)

From: [identity profile] zelanton.livejournal.com - Date: 2013-07-31 11:19 am (UTC) - Expand

(no subject)

From: [identity profile] ext_1684112 - Date: 2013-07-31 12:22 pm (UTC) - Expand

(no subject)

From: [identity profile] zelanton.livejournal.com - Date: 2013-07-31 12:50 pm (UTC) - Expand

(no subject)

From: [identity profile] henu3detb.livejournal.com - Date: 2013-07-30 07:53 pm (UTC) - Expand

(no subject)

From: [identity profile] zelanton.livejournal.com - Date: 2013-07-30 07:59 pm (UTC) - Expand

(no subject)

From: [identity profile] fraks-nsk.livejournal.com - Date: 2013-07-31 01:38 am (UTC) - Expand

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2013-07-30 08:03 pm (UTC) - Expand

(no subject)

From: [identity profile] zelanton.livejournal.com - Date: 2013-07-30 08:05 pm (UTC) - Expand

(no subject)

From: [identity profile] zelanton.livejournal.com - Date: 2013-07-30 08:12 pm (UTC) - Expand

(no subject)

From: [identity profile] dennab.livejournal.com - Date: 2013-07-31 02:00 pm (UTC) - Expand

(no subject)

From: [identity profile] zelanton.livejournal.com - Date: 2013-07-31 07:18 pm (UTC) - Expand

Date: 2013-07-30 05:33 pm (UTC)
From: [identity profile] bydl0coder.livejournal.com
Строчка осталась в доке с тех времен, когда из баз они один мускуль знали (можно blame посмотреть ради прикола). В нынешних и DSL для констрейнов в миграциях, само поднимется, откатится. Нефиг маны читать потому что, хуяк хуяк и в продакшен. Это тебя нанимают за 7 штук админку писать?

Date: 2013-07-30 05:37 pm (UTC)
From: [identity profile] bydlorus.livejournal.com
> Нефиг маны читать потому что

Т.е. рельсы это таки говно?

(no subject)

From: [identity profile] bydl0coder.livejournal.com - Date: 2013-07-30 05:37 pm (UTC) - Expand

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-07-30 05:46 pm (UTC) - Expand

(no subject)

From: [identity profile] bydl0coder.livejournal.com - Date: 2013-07-30 05:47 pm (UTC) - Expand

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-07-30 05:49 pm (UTC) - Expand

(no subject)

From: [identity profile] sergiej.livejournal.com - Date: 2013-07-30 06:21 pm (UTC) - Expand

Date: 2013-07-30 05:40 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Мозг мне ебать меня нанимают, судя по всему :)
Но я сначала пойду отдыхать, заебался.

Date: 2013-07-30 05:37 pm (UTC)
From: [identity profile] bydl0coder.livejournal.com
Тьфу блин.
are not heavily used
Олег, залогиньтесь.

Date: 2013-07-30 06:40 pm (UTC)
From: [personal profile] ex0_planet
я не олег, но здесь-то что не так?

Date: 2013-07-30 06:19 pm (UTC)
From: [identity profile] vinslivins.livejournal.com
а можно спросить, каким образом был отправлен скл запрос не из моделей рельсов?

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

если надо кому-то ещё - слава богу делать веб-сервисы можно практически генератором.

Date: 2013-07-30 06:20 pm (UTC)
From: [identity profile] vinslivins.livejournal.com
ну или если запрос скл шлют рельсы, наверное он был заранее оттестирован в тестовой базе соответствующим тестом?

Date: 2013-07-30 06:28 pm (UTC)
From: [identity profile] metaclass.livejournal.com
mysql -u hipsteruser -phipsterpassword
>insert into HipsterCustomers(name) values('testhipster');

все, приложение умирает на NULL/nil в одном из полей :)

(no subject)

From: [identity profile] vinslivins.livejournal.com - Date: 2013-07-30 06:44 pm (UTC) - Expand

(no subject)

From: [personal profile] develop7 - Date: 2013-07-30 10:02 pm (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2013-07-30 11:02 pm (UTC) - Expand

(no subject)

From: [identity profile] bydl0coder.livejournal.com - Date: 2013-08-01 03:42 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-07-31 05:31 am (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2013-07-31 06:24 am (UTC) - Expand

(no subject)

From: [personal profile] develop7 - Date: 2013-07-31 09:17 am (UTC) - Expand

(no subject)

From: [personal profile] develop7 - Date: 2013-07-31 09:37 am (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-07-31 10:46 am (UTC) - Expand

(no subject)

From: [personal profile] develop7 - Date: 2013-07-31 12:16 pm (UTC) - Expand

(no subject)

From: [identity profile] dennab.livejournal.com - Date: 2013-07-31 02:02 pm (UTC) - Expand
From: [identity profile] livejournal.livejournal.com
User [livejournal.com profile] insanegigolo referenced to your post from Рельсы и констрейнты в БД (http://insanegigolo.livejournal.com/89887.html) saying: [...] Оригинал взят у в Рельсы и констрейнты в БД [...]

Есенинское

Date: 2013-07-31 06:56 am (UTC)
From: [identity profile] livejournal.livejournal.com
User [livejournal.com profile] plumqqz referenced to your post from Есенинское (http://plumqqz.livejournal.com/389428.html) saying: [...] рожье В овраг глухой. Пролей как масло Власа луны В мужичьи ясли Моей страны Срок ночи долог... [...]

Date: 2013-08-01 09:16 pm (UTC)
From: [identity profile] theiced.livejournal.com
сожри ещё говна, уёбище

Date: 2013-07-31 09:35 am (UTC)
From: [identity profile] zealer.livejournal.com
Это конечно неофициально, но с моей точки зрения - Рельсы предполагают, что на проекте будет DBA, который будет работать с базой на продакшене.
А в development/test режиме это не обязательно.

Date: 2013-07-31 09:50 pm (UTC)
From: [identity profile] theiced.livejournal.com
нет, они как раз предполагают что дба не будет.

(no subject)

From: [identity profile] zealer.livejournal.com - Date: 2013-08-01 11:11 am (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2013-08-01 08:18 pm (UTC) - Expand

Date: 2013-07-31 04:22 pm (UTC)
From: [identity profile] permea-kra.livejournal.com
Не является ли это поводом для посыла рельсов вхуй?

Date: 2013-07-31 05:04 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Наверно, нет. Расширения, умеющие в FK у них есть, рельсам второй эшелон обороны от тупизма никак не помешает, поэтому при желании можно сделать нормально.

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2013-08-01 08:18 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-08-01 08:33 pm (UTC) - Expand

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 8th, 2025 04:55 am
Powered by Dreamwidth Studios