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

Вопрос: кто делал ведение истории изменений данных по конкретным объектам

в проекте, поделитесь как делали ? На одном из прошлых проектов вели ведение версий через триггеры в БД, при insert или update брали новые данные, переводили в xml и сохраняли в таблицу версий/логов, для удаления отдельно в коде прописано было добавление в логи инфы об удалении объекта. Но не хочется мне триггеры использовать. )

4 ответов

7 просмотров

а какая цель для истории измений?

можно ивентсоурсинг использовать

На триггерах — самое крутое решение, потому что будет работать даже для данных, которые меняют ручными запросами. Недостаток: сложно может быть реализовать для хитрых структур (если, например, для частей данных хочется иметь copy-on-write). У меня был проект, в котором делали своё решение на клиенте, и структура БД получалась очень запутанной. Я считаю, что, если есть возможность сделать просто и триггерами, то так и нужно поступить.

тут упоминали евентсорсинг, потому добавлю. в случае ES оно не предназначено для отката назад. тоесть ты можешь получить состояние из прошлого, но поменять текущее состояние объекта можно будет либо через компенсирующие комиты (как в гите) или через костыли типа удаление комитов (но оно не для этого придумано). а так, в плане аудита ES очень прикольный подход.

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
6
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
7
Здравствуйте. Задача состоит в том, чтобы сделать real-time чат в мобильном приложении. После передачи сообщения пользователем через веб-сокеты, для основного и долговременног...
🐾
5
Книга Юрова В.И пойдёт для обучения?
Botsman
24
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
Где можно найти примеры эффективного "асинхронного" tcp сервера на C? Я видел select, kqueue, poll, epoll и т.д. Ввод-вывод неблокирующий, но обработка клиентов блокирующая
#
10
Hi Everyone! To all Are you Looking for Interview Support at the Lowest Price? Look no further! Then contact us 👉We offer Interview Support :-for a low cost variety of tech...
Rambabu Nallamilli
3
Карта сайта