A
То, что если у тебя к этом пользователю много связей, то ты еще и полбазы себе вынесешь)
A
Ну тогда ты и не удалишь ничего толком)
Artur
что psql крутой язык для бизнес-логики
У меня в проекте часть логики там. Это адок конечно, я даже дебаггер для pgAdmin поднимал :)
A
Вообще удаление в реляционках это такая вещь...
Vadim
по нашим наблюдениям у монги начинаются проблемы когда размер индексов выходит за размер доступной RAM. загружали базу размером 700 гб (по сути логи). когда индексы стали болше RAM (64гб) - вставка стала очень медленной
Artur
Ну тогда ты и не удалишь ничего толком)
Если данные критичные (а юзер обычно является критичной сущностью), то надо думать прежде чем удалять
Artur
Без консистентности джуниор тебе удалит его и напложит битые ссылки которые потом расхлёбывать тебе
Artur
Если ты сам конечно не джун
A
Без консистентности джуниор тебе удалит его и напложит битые ссылки которые потом расхлёбывать тебе
и тут мы внезапно приходим вот к этому: > @vkurchatkin Это зависит от разделения ответственности
Artur
Запрещать джунам коммитить в репозиторий слово DELETE?
Artur
Код ревью делать на 10 человек, в надежде что кто-то заметит?
Artur
И всё только ради того чтобы внешний ключ не вешать?
A
Как мы от баз данных перешли к управлению персоналом?)
Vladimir
Как будто субд мешает удалять
Vladimir
Она мешает удаляет неконсистентно
Vladimir
Ну удалит твой джун консистентно- сильно лучше станет?
Artur
Если он преднамеренно это делает, то конечно не станет. Тут вообще другая история. Джуны он обычно по неопытности что-то плохое делают, без злого умысла
A
Да причем тут джуны? ))) Речь о том, что если ты в реляционке начнёшь что-то удалять, то быстро упрёшься в свои же связи. И либо cascade, что обычно не то, что ты хочешь, либо restrict, который скорее всего ничего не удалит. Ты там выше зачем-то предлагал убирать констрейнты. Не знаю зачем. Все нормальные парни в случае связанных данных ничего не удаляют. Обычно в таких случаях данные помечаются удаленными. И либо когда-то там бэкграундная джоба что-то сделает, чтобы распутать эту связь, либо оно так и остаётся висеть. Плюс к этом надо добавить еще то, что при интенсивном удалении возрастает нагрузка и на индекс, и на, скажем так, чтение данных. Не знаю как там у вас это делают, а у нас обычно слово DELETE вообще не фигурирует нигде, никак и никогда.
Vladimir
> @wertlex Все нормальные парни в случае связанных данных ничего не удаляют. Обычно в таких случаях данные помечаются удаленными. Вот тоже верно
Gordey
DELETED_AT
Artur
Да госпидя, это всё понятно. ON DELETE RESTRICT как раз таки поможет от случайного удаления
Gordey
а с чего тут все началось, ревью в команде впадлу делать?
Artur
Короче, подведём итог. Целостность данных - добро. В монге с этим проблемы. Поэтому для бложиков с комментариями - монга ок. Для сложных систем - не ок. Выбирайте инструмент из потребностей, знайте его плюсы и минусы.
Artur
Всем peace
Artur
Целостность === консистентность
Ale
странный вывод)
kdm🇩🇰
блин, ну норм так про бд тему поднял
kdm🇩🇰
короче mysql я понял
kdm🇩🇰
)
Alexander
А я просто задал вопрос идиотский...
A
нуу... намного. в реляционке я открою транзакцию, обновлю оба документа, и закрою транзакцию))
A
Я ж там не за монго топил) А за то, что правильное удаление данных вообще, а в реляционке в частности - это тема, требующая особого внимания, и, зачастую, накладывающая отпечаток на всю систему.
A
Короче, подведём итог. Целостность данных - добро. В монге с этим проблемы. Поэтому для бложиков с комментариями - монга ок. Для сложных систем - не ок. Выбирайте инструмент из потребностей, знайте его плюсы и минусы.
И неправильный итог )) Правильный итог такой, что из трёх букв C, A, P выбрать можно только две. И очень сильно зависит от приложения, какие буквые важны в первую очередь.
Roman
для бложиков с коментариями мне кажется как раз rdb идеально
Roman
просто, надежно + джоины
Roman
next.js вдохновлялся простотой php
Next.js про конвенции, и высокоуровневые абстракции
Roman
апдейт. попытался загрузить файлик из сетки с норм пропускной способностью - успех
Bushrut
парни кто юзает node-telegram-bot-api, как передать тест с форматированием, например жирный
Bushrut
я напилс, просто там послединй ответ 2 часа назад
Славик
не дождался ответа и напился
Славик
в options указываешь параметр parse_mode
Славик
и в зависимости от указанного параметра html или markdown отдаешь в тексте
Славик
ай
Славик
помогите ему, кто-нибудь
Славик
я устал от этого дерьма
Bushrut
{ title: '1. The woman was very much in love with the junior accountant in her office.', buttons: [ [{text: 'a) interested in', callback_data: '0_1'}], [{text: 'b) double dating', callback_data: '0_2'}],
Bushrut
где в тайтл это вставить
Bushrut
например слово very
Bushrut
сорри парни, не туда свойство прописал
Bushrut
Roman
отгадайте какой будет результат
Roman
class N extends null {};new N;
Vlad
.constructor error
Roman
не, прекраснее
Smooth Operator
У null нет прототипа
Vlad
TypeError function () { } is not a constructor
Andrey 😼
class N extends null {};new N;
Так лень поднимать жопу с дивана чтобы проверить
Vlad
в принципе как я и сказал
Roman
node7 TypeError: function is not a function
Roman
формулировка просто понравилась
Vlad
я в фф проверил
Sergey
в хроме, разумеется, то же самое
Andrey 😼
Andrey 😼
Почему-то эта картинка вспоминается при "function is not a function"
Anonymous
[] == ![]; // true
Alek
0 == 0 логично
Zaur
подскжатие, пожалуйста, если один из bluebird-промисей в Promise.all получил ошибку, будут ли выполнены остальные промиси?
Andrey 😼
[] == ![]; // true
[] == [] // false
Andrey 😼
Что вызывает несколько больше вопросов)
[] == [] // false
Вот это поворот