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

Подскажите, пожалуйста, как лучше всего обрабатывать статусы, базирующиеся на других

колонках типа даты и на текущей дате?
Может есть для этого какие-то паттерны?

Я вижу такие способы:
1. По крону апдейтить статусы при наступлении определенной даты.
Минусы:
– Нужно писать джобу. Причем, если данных для обновления будет много, некоторые из них обновятся через какое-то время (к примеру, в случае обновление в полночь некоторые данные обновятся через минуту, а хотелось бы, чтобы это было мгновенно)
Плюсы:
– Легко работать с TypeORM

2. Использовать виртуальное поле для статуса.
Минусы:
– Нужно городить костыли для того, чтобы это нормально работало в TypeORM. (someRepository.create({...}) отдаст инстанс, который содержит только колонки с декоратором @Column(), но если я добавлю этот декоратор на колонку со статусом, эта колонка появится после того, как я сгенерю миграцию.

Плюсы:
– Не нужно писать крон-джоб

Извиняюсь, что в вопросе затронул не только Postgres, а и TypeORM, но это больше просто детали. Хотелось бы узнать лучшие практики работы со статусами и как это лучше всего организовать конкретно в Postgres

5 ответов

18 просмотров

Почему бы не сохранять статус сразу при обновлении/вставке записи в таблицу? Или использовать https://www.postgresql.org/docs/12/ddl-generated-columns.html

Ruslan-Ilmerainen Автор вопроса
Long Johnson
Почему бы не сохранять статус сразу при обновлении...

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

Ruslan Ilmerainen
статус нужно обновлять по наступлению некоторой да...

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

Ruslan-Ilmerainen Автор вопроса
Long Johnson
так если его можно вычислить сразу, то лучше и зап...

извините, вот это я не понял: "а отдавать наружу, если того требует логика, ты можешь после наступления некоторой даты"

Помимо предложенного варианта, стандартный способ работы через orm со схемой данных, которая в эту orm плохо ложится - создание view и маппинг этой view в orm вместо таблички. При необходимости модификаций - пишется триггер. Плюсы: можно сильно расширить границы применимости orm (но в неумелых руках это превратится в жирный минус); все подгружаемые данные максимально актуальны без лишних телодвижений; в тривиальных случаях позволяет обойти проблему N+1. Минусы: при модификации схемы надо будет править и view.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта