Я работаю над написанием приложения, предназначенного для выполнения единичных или массовых операций CRUD для множества различных таблиц и столбцов в этих таблицах.Суть в том, что пользователь приложения может определить, какие таблицы и столбцы могут быть обновлены, поэтому все должно быть динамическим.
Я думаю, что я довольно уверен в том, как я хочу структурировать приложение,но я не уверен, как правильно хранить журнал изменений, внесенных в данные.Я хотел бы сохранить старые и новые значения для всех изменений, но я не уверен, как эффективно получить старые данные при массовом обновлении.Пользователь может установить столько разных столбцов, сколько ему нужно, на разные значения в зависимости от условия, и измененная сумма может быть одной или сотней.
Моя первоначальная мысль сохранить ее будет состоять в том, чтобы просто запросить всезначения меняются и помещаются в мою таблицу аудита, но я не уверен, будет ли это вообще эффективно.
Если кто-то сталкивался с чем-то подобным или у него есть какие-либо идеи, это было бы фантастически.
Что у меня есть для моей таблицы аудита, где AppColumn
хранит имя и тип столбца, который имеет ссылку на таблицу с именем AppTable
, которая ссылается на таблицу с именем AppDatabase
:
CREATE TABLE AppAudit (
AppAuditId INT NOT NULL IDENTITY(1,1) PRIMARY KEY
,AppColumnId INT NOT NULL FOREIGN KEY REFERENCES AppColumn(AppColumnId)
,OldValue VARCHAR(MAX)
,NewValue VARCHAR(MAX)
);
Редактировать: я должен был упомянуть, что, поскольку приложение должно быть динамичным, а бизнес-пользователи хотят добавлять таблицы на лету без разработчика, перекомпилирующего проект, каждая таблица НЕ будет иметь модель хранится в приложении.Я знаю, что это ломает большую часть «точки» MVC, но это то, что хочет клиент.Если у кого-то есть лучший способ справиться с этой частью приложения, я все еще очень рано в процессе разработки.