Akina, Если мы вставляем обновления в туже таблицу где хранятся оригиналы, каждая запись будет иметь свой id и получается нужно 2 идентификатора, один записи, другой пользователя. И все связи нужно крепить на id пользователя.
shurshur, В слоёной можно спокойно заменить orm на любую другую, главное чтобы контракт домена сохранялся. Придётся миграцию провести, а тотальное переписывание будет связано лишь c моделью.
Да, я добавлю мидлу prisma для вставки в базу - чтобы писать логи в таблицу, но ровно тоже самое можно сделать обычным sql или другой orm, так что я не жёстко привязан к ней.
Например у пользователя может быть множество товаров, нужно определить состояние определённого товара для определённой записи пользователя.
- Реальный сценарий?
Akina, Первое решение хорошо звучит, только эти копии очень много диска будут занимать.
- Есть ли способ сэкономить место с этим подходом?
Триггеры для записи в таблицу аудита, меньше места но чуть сложнее извлечение, с другой стороны обращаться к ней реже будут.
- При условии что аудит хранит лишь изменённые поля.
Кажется если учесть производительность в уравнении, копия таблицы с историей лучший вариант.
Я в этом не разбираюсь, могу лишь указать на способ достижения цели:
Если раньше работало: вычти из текущего то, что было раньше и получишь разницу в которой спряталась проблема.
Например: версию kubernetes, провайдера домена, регион хоста и т.д, и т.п.
shurshur, Весьма логично провести миграцию на современную бд (postgres), это ничем не отличается от "поставить другую базу".
- Трудозатрат не так уж и много, при условии что реализация ограничивается стандартным sql.
остался всего один разраб, который по уши занят поддержкой
на старом .net примерно 15 лет назад
- Но есть нюансы, которые выяснились лишь после ответа, ведь давать полную информацию не модно.
Действительно, перед тем как покупать новый монитор нужно убедиться что проблема не в:
1. Кабеле
2. Разъёме ноутбука
3. Разъёме монитора
Кабель проверяется заменой.
Разъём ноутбука проверяется новым кабелем и ещё одним устройством для подключения hdmi. (телик в вашем случае)
Разъём монитора так-же как разъём ноутбука.