@nodejs_ru

Страница 642 из 2748
Vladimir
07.03.2017
10:50:20
Но для большинства случаев это норм

Вообще я бы на постгре бы сейчас перешёл, если бы было время на это

Roman
07.03.2017
10:52:30
В общем если в монге нужна консистентность между документами, то не избежать исхищрений
если кто-то пытается поддержиавать 100% консистентность в монге, с ним что-то не так

Вообще я бы на постгре бы сейчас перешёл, если бы было время на это
бесят миграции в RDBMS, к тому же в ноде нет ничего для этого нормального

Google
Alex
07.03.2017
10:53:08
Ну и опять же, надо понимать, что выбирая монгу ты выбираешь шардинг, репликацию, вот это вот всё. И вот этого всего нету в реляционке, и, вообще говоря, и не может быть без трейд-офф либо по перфомансу, либо по ACID

Roman
07.03.2017
10:53:12
вот джанга + rdb это приятно

Vladimir
07.03.2017
10:53:29
Это да, я бы начал копать в сторону json полей

Vladimir
07.03.2017
10:53:46
Если там есть индексы, то можно жить

Vladimir
07.03.2017
10:54:22
Большинству не нужен шардинг

Если бы мне нужен был шардинг, то я бы не стал его на монге делать

Alex
07.03.2017
10:55:10
Ага

Почему?

Vladimir
07.03.2017
10:55:51
Хз, есть какое то чувство что это тупиковый путь

Google
Alex
07.03.2017
10:56:09
А шардинг затащить в приложение?

Vladimir
07.03.2017
10:56:40
Не, взять ориентированную на шардинг субд для этих данных

Aleh
07.03.2017
10:56:56
но вообще постгря норм

Vladimir
07.03.2017
10:57:04
Riak, Cassandra, etc

Aleh
07.03.2017
10:57:07
активно юзаем jsonb

Roman
07.03.2017
10:57:27
Vladimir
07.03.2017
10:57:34
Riak должен быть относительно прост во всех аспектах

Aleh
07.03.2017
10:57:40
да, вполне, но пока туда value-objects складываем

и списки

если они особо не нужны вне сущности, что обычно так

Artur
07.03.2017
10:58:40
Хотя если под целостностью данных подразумевается логическая конститентность между документами, то под этой
Да, целостность данных - это как раз отсутствие битых ссылок, пустых значений в NOT NULL колонках и так далее

Vladimir
07.03.2017
10:59:39
Вообще это конечно удобно, но это олдскульный подход с переносом части бизнес логики в БД

Artur
07.03.2017
10:59:51
Если там есть индексы, то можно жить
Есть индексы, ещё и jsonb поля

Вообще это конечно удобно, но это олдскульный подход с переносом части бизнес логики в БД
А кто говорит про логику? Допустим я пытаюсь удалить юзера, а на него ссылки с других таблиц. Я в приложении за этим следить должен?

Roman
07.03.2017
11:00:39
хранимки!

Михаил
07.03.2017
11:00:49
Ребята, а в чем может быть проблема. Поставил постгрю. Спокойно могу делать коннект через psql -U postgres. Сетаплю себе sequelize. Делаю коннект к БД с нужными кредами. Но выпадает ошибка SequelizeBaseError: password authentication failed for user "ubuntu.username". Почему он пытается юзать убунту юзера, а не того, что я отдал в конфиге ?

Artur
07.03.2017
11:00:49
Да просто foreign key

Artur
07.03.2017
11:01:02
Да
Нет

БД не должна допускать несогласованности того что в ней лежит

Google
Aleh
07.03.2017
11:01:41
хранимки!
вот тебе смешно https://habrahabr.ru/post/321050/#comment_10056294

Vladimir
07.03.2017
11:01:56
БД не должна допускать несогласованности того что в ней лежит
Это зависит от разделения ответственности

Aleh
07.03.2017
11:02:00
для меня было неожиданностью, что люди не просто так делают, а еще топят за то, что это ок и так надо

Aleh
07.03.2017
11:02:16
что psql крутой язык для бизнес-логики

Artur
07.03.2017
11:02:37
гыгы. ON DELETE CASCADE ))))
И что смешного?

Aleh
07.03.2017
11:02:49
что psql крутой язык для бизнес-логики
ооп, модули, типажи, полиморфизм для лохов короч

Artur
07.03.2017
11:02:55
Несогласованности не будет. Если данные важны то ставишь ON DELETE RESTRICT

Alex
07.03.2017
11:03:04
То, что если у тебя к этом пользователю много связей, то ты еще и полбазы себе вынесешь)

Alex
07.03.2017
11:04:06
Ну тогда ты и не удалишь ничего толком)

Artur
07.03.2017
11:04:15
что psql крутой язык для бизнес-логики
У меня в проекте часть логики там. Это адок конечно, я даже дебаггер для pgAdmin поднимал :)

Alex
07.03.2017
11:04:20
Вообще удаление в реляционках это такая вещь...

Artur
07.03.2017
11:04:50
Vadim
07.03.2017
11:05:00
по нашим наблюдениям у монги начинаются проблемы когда размер индексов выходит за размер доступной RAM. загружали базу размером 700 гб (по сути логи). когда индексы стали болше RAM (64гб) - вставка стала очень медленной

Artur
07.03.2017
11:05:11
Ну тогда ты и не удалишь ничего толком)
Если данные критичные (а юзер обычно является критичной сущностью), то надо думать прежде чем удалять

Без консистентности джуниор тебе удалит его и напложит битые ссылки которые потом расхлёбывать тебе

Если ты сам конечно не джун

Google
Artur
07.03.2017
11:07:23
Запрещать джунам коммитить в репозиторий слово DELETE?

Код ревью делать на 10 человек, в надежде что кто-то заметит?

И всё только ради того чтобы внешний ключ не вешать?

Alex
07.03.2017
11:08:06
Как мы от баз данных перешли к управлению персоналом?)

Vladimir
07.03.2017
11:08:16
Как будто субд мешает удалять

Admin
ERROR: S client not available

Vladimir
07.03.2017
11:08:36
Она мешает удаляет неконсистентно

Artur
07.03.2017
11:08:44
Vladimir
07.03.2017
11:09:03
Ну удалит твой джун консистентно- сильно лучше станет?

KlonD90
07.03.2017
11:09:25
А как же ручной комит? У него то неплохие гарантии. Ну как напишешь конечно но получше.

Artur
07.03.2017
11:09:40
Если он преднамеренно это делает, то конечно не станет. Тут вообще другая история. Джуны он обычно по неопытности что-то плохое делают, без злого умысла

Alex
07.03.2017
11:23:40
Да причем тут джуны? ))) Речь о том, что если ты в реляционке начнёшь что-то удалять, то быстро упрёшься в свои же связи. И либо cascade, что обычно не то, что ты хочешь, либо restrict, который скорее всего ничего не удалит. Ты там выше зачем-то предлагал убирать констрейнты. Не знаю зачем. Все нормальные парни в случае связанных данных ничего не удаляют. Обычно в таких случаях данные помечаются удаленными. И либо когда-то там бэкграундная джоба что-то сделает, чтобы распутать эту связь, либо оно так и остаётся висеть. Плюс к этом надо добавить еще то, что при интенсивном удалении возрастает нагрузка и на индекс, и на, скажем так, чтение данных. Не знаю как там у вас это делают, а у нас обычно слово DELETE вообще не фигурирует нигде, никак и никогда.

Vladimir
07.03.2017
11:24:17
> @wertlex Все нормальные парни в случае связанных данных ничего не удаляют. Обычно в таких случаях данные помечаются удаленными. Вот тоже верно

Gordey
07.03.2017
11:24:31
DELETED_AT

Artur
07.03.2017
11:25:01
Да госпидя, это всё понятно. ON DELETE RESTRICT как раз таки поможет от случайного удаления

Gordey
07.03.2017
11:25:32
а с чего тут все началось, ревью в команде впадлу делать?

Artur
07.03.2017
11:26:15
Короче, подведём итог. Целостность данных - добро. В монге с этим проблемы. Поэтому для бложиков с комментариями - монга ок. Для сложных систем - не ок. Выбирайте инструмент из потребностей, знайте его плюсы и минусы.

Всем peace

Google
Artur
07.03.2017
11:26:57
Целостность === консистентность

Aleh
07.03.2017
11:27:32
странный вывод)

KlonD90
07.03.2017
11:31:56
Есть ощущение что ничего не поменялось

Lulz
07.03.2017
11:53:07
блин, ну норм так про бд тему поднял

короче mysql я понял

)

Alexander
07.03.2017
11:58:06
А я просто задал вопрос идиотский...

Alex
07.03.2017
11:58:38
Ну вот тебе нужно обновить 2 документа. Задача стала проще?
нуу... намного. в реляционке я открою транзакцию, обновлю оба документа, и закрою транзакцию))

Я ж там не за монго топил) А за то, что правильное удаление данных вообще, а в реляционке в частности - это тема, требующая особого внимания, и, зачастую, накладывающая отпечаток на всю систему.

Короче, подведём итог. Целостность данных - добро. В монге с этим проблемы. Поэтому для бложиков с комментариями - монга ок. Для сложных систем - не ок. Выбирайте инструмент из потребностей, знайте его плюсы и минусы.
И неправильный итог )) Правильный итог такой, что из трёх букв C, A, P выбрать можно только две. И очень сильно зависит от приложения, какие буквые важны в первую очередь.

Roman
07.03.2017
12:15:53
для бложиков с коментариями мне кажется как раз rdb идеально

просто, надежно + джоины

Roman
07.03.2017
12:25:29
next.js вдохновлялся простотой php
Next.js про конвенции, и высокоуровневые абстракции

Roman
07.03.2017
13:13:28
Я. Пытался. Но оно поломали зависимости на проде и сервер завис грузя трехгиговый файл
апдейт. попытался загрузить файлик из сетки с норм пропускной способностью - успех

Alex
07.03.2017
14:18:22
парни кто юзает node-telegram-bot-api, как передать тест с форматированием, например жирный

Oleksandr
07.03.2017
14:18:41
Alex
07.03.2017
14:19:27
я напилс, просто там послединй ответ 2 часа назад

Славик
07.03.2017
14:26:45
не дождался ответа и напился

Страница 642 из 2748