Ale
При том даж в смолтоке класс это такой же объект, просто создающий другие объекты (фабрика)
Ale
Просто если говорить "именно класса", то будет проблема с тем, что такое класс
Ale
В разных языках это разные штуки
Vladimir
Да в общем то не особо разные
Vladimir
Нет, не выбрал бы. Но по другой причине
Ale
Vladimir
Хотя если под целостностью данных подразумевается логическая конститентность между документами, то под этой
Vladimir
По какой?
Транзакции это весьма не лишняя вещь
Ale
Ale
Вот и транзакция)
Vladimir
Увы не всегда это возможно
Ale
Другие аггрегаты должны обновляться в рамках жругих транзакций
Ale
Ну короче, выделив границы транзакций все равно куда их пихать
Ale
Лишь бы опыт был
Vladimir
Увы, это приводит к дикому геморрою
Vladimir
Например, нужно создать два документа за раз
Vladimir
Создаём первый, затем второй
Anton
еще камень в сторону монгу, оно не могет апдейтнуть элемент во вложенном масиве, по-моему это зашквар лютый
https://jira.mongodb.org/browse/SERVER-831
Vladimir
Но при последующей обработке при наличии первого нельзя рассчитывать на наличие второго
Ale
Vladimir
Приходится делать фоновые процессы, которые чинят такие связи
Vladimir
Или read repair
Ale
У тебя было две транзакции
Vladimir
Нет, была одна, логическая
Ale
Ну в монге транзакция это работа с одним документом
Vladimir
Недавно изучил протокол монги и бсон, там уже куча смешного
Roman
да говно монга это всем понятно, вопрос что вместо для нее для schema-less хранилищ
Ale
Vladimir
В общем если в монге нужна консистентность между документами, то не избежать исхищрений
Vladimir
И при этом в итоге будет максимум eventual consistency
Vladimir
Но для большинства случаев это норм
Vladimir
Вообще я бы на постгре бы сейчас перешёл, если бы было время на это
Roman
A
Ну и опять же, надо понимать, что выбирая монгу ты выбираешь шардинг, репликацию, вот это вот всё. И вот этого всего нету в реляционке, и, вообще говоря, и не может быть без трейд-офф либо по перфомансу, либо по ACID
Roman
вот джанга + rdb это приятно
Vladimir
Это да, я бы начал копать в сторону json полей
A
A
Ага
Vladimir
Если там есть индексы, то можно жить
Roman
Ну и опять же, надо понимать, что выбирая монгу ты выбираешь шардинг, репликацию, вот это вот всё. И вот этого всего нету в реляционке, и, вообще говоря, и не может быть без трейд-офф либо по перфомансу, либо по ACID
за репликацию многие топят, но это же дичь сколько данных надо, чтобы понадобился дистрибутед шардинг
A
Vladimir
Большинству не нужен шардинг
Vladimir
Если бы мне нужен был шардинг, то я бы не стал его на монге делать
A
Ага
A
Почему?
Vladimir
Хз, есть какое то чувство что это тупиковый путь
A
А шардинг затащить в приложение?
Vladimir
Не, взять ориентированную на шардинг субд для этих данных
Ale
но вообще постгря норм
Vladimir
Riak, Cassandra, etc
Ale
активно юзаем jsonb
Roman
Vladimir
Riak должен быть относительно прост во всех аспектах
Ale
да, вполне, но пока туда value-objects складываем
Ale
и списки
Ale
если они особо не нужны вне сущности, что обычно так
Vladimir
Вообще это конечно удобно, но это олдскульный подход с переносом части бизнес логики в БД
Artur
Roman
хранимки!
Roman
Michael
Ребята, а в чем может быть проблема. Поставил постгрю. Спокойно могу делать коннект через psql -U postgres. Сетаплю себе sequelize. Делаю коннект к БД с нужными кредами. Но выпадает ошибка
SequelizeBaseError: password authentication failed for user "ubuntu.username". Почему он пытается юзать убунту юзера, а не того, что я отдал в конфиге ?
Artur
Да просто foreign key
Vladimir
Artur
Artur
БД не должна допускать несогласованности того что в ней лежит
Roman
Ale
хранимки!
вот тебе смешно https://habrahabr.ru/post/321050/#comment_10056294
Vladimir
Ale
для меня было неожиданностью, что люди не просто так делают, а еще топят за то, что это ок и так надо
Ale
что psql крутой язык для бизнес-логики
A
Artur
Artur
Несогласованности не будет. Если данные важны то ставишь ON DELETE RESTRICT