на чтение.
Зачем?
Чтобы сохранить нормализацию всей базы. Нормализация избавляет от ошибок.
В PG есть способ сделать это с materialized view, что будет представлять отдельную таблицу только на чтение.
Когда будет выполняться запрос на построение денормализованной таблицы (mat view), то все данные, которые добавляются в таблицы в этот момент, скорей всего не попадут в неё, но попадут при след. refresh-е view.
Но это то, как бы я стал делать.
Если вам нужно иметь up to date денормализованную таблицу, то скорей всего сделать придётся hand made materialized view.
Т.е. создать таблицу только для чтения. Навешать триггеры, которые будут туда складывать, когда добавляются даные в другую основную (нормализованную) таблицу.
Важно, чтобы эта таблица была только для чтения и её можно было пересобрать заново.
Да, эта таблица только для чтения, и как раз висят хуки на апдейты и прочее основных таблиц для пересчета
Обсуждают сегодня