
Vladimir
07.03.2017
10:50:20
Но для большинства случаев это норм
Вообще я бы на постгре бы сейчас перешёл, если бы было время на это

Roman
07.03.2017
10:52:30

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 полей

Alex
07.03.2017
10:53:35
Ага

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

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

Alex
07.03.2017
10:54:17

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

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

Artur
07.03.2017
10:59:51

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

Vladimir
07.03.2017
11:00:51

Artur
07.03.2017
11:01:02
БД не должна допускать несогласованности того что в ней лежит

Google

Roman
07.03.2017
11:01:41

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
для меня было неожиданностью, что люди не просто так делают, а еще топят за то, что это ок и так надо

Klim
07.03.2017
11:02:08

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

Alex
07.03.2017
11:02:19

Artur
07.03.2017
11:02:37

Aleh
07.03.2017
11:02:49

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

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

Artur
07.03.2017
11:03:15

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

Artur
07.03.2017
11:04:15

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

Alex
07.03.2017
11:05:40

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
Да причем тут джуны? )))
Речь о том, что если ты в реляционке начнёшь что-то удалять, то быстро упрёшься в свои же связи. И либо cascade, что обычно не то, что ты хочешь, либо restrict, который скорее всего ничего не удалит.
Ты там выше зачем-то предлагал убирать констрейнты. Не знаю зачем.
Все нормальные парни в случае связанных данных ничего не удаляют. Обычно в таких случаях данные помечаются удаленными. И либо когда-то там бэкграундная джоба что-то сделает, чтобы распутать эту связь, либо оно так и остаётся висеть.
Плюс к этом надо добавить еще то, что при интенсивном удалении возрастает нагрузка и на индекс, и на, скажем так, чтение данных.
Не знаю как там у вас это делают, а у нас обычно слово DELETE вообще не фигурирует нигде, никак и никогда.
Ну вот тебе нужно обновить 2 документа. Задача стала проще?
Есть ощущение что ничего не поменялось

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

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

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

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

Roman
07.03.2017
12:25:29

Vladimir
07.03.2017
12:42:44

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
не дождался ответа и напился