170 похожих чатов

12 ответов

35 просмотров

Потому что данные принято хранить в БД? Чего это не домен, это транзакция, самый что ни на есть домен

Alexander-Pavlenko Автор вопроса
Oleg Safonov
Потому что данные принято хранить в БД? Чего это н...

есть бизнес модели, а есть модели уровня разработки. Все в бд хранить?

Alexander-Pavlenko Автор вопроса

а скорость, будет аргументом?

Alexander Pavlenko
а скорость, будет аргументом?

В контексте транзакций думаю главным будет надёжность в первую очередь

Alexander-Pavlenko Автор вопроса
Oleg Safonov
В контексте транзакций думаю главным будет надёжно...

нам нужно хранить данные в контексте нажатия кнопки, нам эти данные при закрытом приложении ни к чему. зачем это хранить в бд?

Alexander Pavlenko
нам нужно хранить данные в контексте нажатия кнопк...

Стоп стоп. Почему в контексте нажатия кнопки? Это ж часть транзакции, она существует всегда. У неё есть какой то жизненный цикл

Alexander-Pavlenko Автор вопроса
Oleg Safonov
Стоп стоп. Почему в контексте нажатия кнопки? Это ...

зачем информация о синхронизации обработки транзакции нужно в бд, если кроме момента синхронизации эти данные нигде использованы не будут?

Alexander Pavlenko
зачем информация о синхронизации обработки транзак...

Там не инфа о синхронизации, а инфа о состоянии транзакции. Где кем и когда подтверждена

Alexander-Pavlenko Автор вопроса
Oleg Safonov
Там не инфа о синхронизации, а инфа о состоянии тр...

ок, вот добавили мы флаг в сущность транзакции и том что она обрабатывается. Где гарантии что установка этого флага не будет выполнена одновременно 2мя пользователями. Как вы себе представляете процесс синхронизации этого действия?

Там не флаг, там видимо enum как множество состояний. Гарантия на уровне транзакций в БД, к примеру. Я не знаком близко с этим, но запрос вида 'Update set InProcess = true Where Id = 7 and InProcess = false' гарантирует, что выставится один раз. И вернёт количество затронутых строк

Alexander-Pavlenko Автор вопроса
Oleg Safonov
Там не флаг, там видимо enum как множество состоян...

проблема в том, что этот query по логике должен быть вызван уже после проверки этого флага. Т.е. 2 около одновременных запросов пройдут условие до того как данные в БД сохранятся. Ок возьмем даже если этот query выполнится за 20 мс, 20 мс в контексте одного http запроса это слишком много для синхронизации чтобы быть уверенным что это поможет. У меня была такая ситуация, решалось как я и писал выше, через ConcurrentDictionary.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта