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

Привет, это снова я с автозапчастями. У меня PostgreSQL последней

версии

Есть припустим 10к записей о запчастях в базе, какие-то пользователи купили запчасти и теперь в некой таблице заказов есть отношение между покупателем и автозапчастью. Через 3 дня пришёл новый прайс-лист, с базы полностью удалились все записи и записались новые (чтобы хранить актуальную информацию), получается мы теряем историю заказов пользователей. Подскажите как правильнее решить мою задачу.

Я думал при получении новых, актуальных записей ставить у старых флаг "не актуально". Тогда было бы хорошо впилить полную подгрузку в память (для быстрого поиска) актуальной базы. Как это сделать? Припустим в базе будет 100к записей, из которых 10к актуальные с булевым полем. Как бы так сделать, чтобы искать только по этим актуальным записям и быстро?

Второй вариант - при покупке тупо копировать все данные из таблички автозапчастей, включая дату заказа и прочее и при поступлении актуального состояния удалять старые данные. Я понимаю, что механизмы СУБД сами по себе неявно подгрузят табличку в память, но только если в ней будет не так и много записей. И если их оставлять в таблице - рано или поздно она раздуется.

4 ответов

6 просмотров

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

Не удалять физически запчасти.

Быстро будет и так, ничего подгружать не нужно.

У тебя есть запчасть и история цен и это две разные сущности, в счетах храни ставку, которая была на момент создания счета. Удалять запчасти не надо. Добавляй цену в историю

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

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

Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
а чем лучше всего сделать глобальный лок, если много нодов, до сотни? ну то есть мне надо, чтобы некоторые операции с объектом не происходили одновременно. перемещение между н...
Д. П.
15
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
А как вы добиваетесь того что у вас температуры ниже 80 градусов у мака?
Karl {🌪️}{🐊} Shinobi
5
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Всем привет. Нужна платная консультация от тех, кто сталкивался с октябрём в кластере или шарит оч хорошо в цмс. Проблема следующая: после переноса в кластер октябрь начал ...
wl
8
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
я часов 15 назад начал пытаться написать хоть что-то напоминающее ос и у меня есть проблема, которую я пытаюсь решить последние часов 5: есть крч 2 исходника с минимальным код...
Al1to
17
Карта сайта