Entity Framework - отслеживание изменений и откат - PullRequest
0 голосов
/ 15 августа 2011

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

Так что это будет означать, что я хочу «изменить» сущность, но пока не сохраню ее, после того как я принял изменение, оно переопределит сущность с измененной. Но когда я сделал это, я все еще хотел бы иметь возможность откатить изменения позже.

Теперь у меня есть несколько решений:

1) Создайте объект с подобным: [ID], [ChangeApplyDate] [ChangeApproveDate] [Объект до изменения] [Объект после изменения] [Принято (булево)]

2) Создайте дополнительный объект с измененными значениями и связью с «оригинальным» объектом и укажите логическое значение в этом объекте, если это текущий утвержденный объект или нет. (это не создаст новую таблицу, но развернет таблицу, например, «Книга», с несколькими дополнительными свойствами.

Теперь я хотел бы знать, как вы относитесь к этим решениям и можете ли вы когда-нибудь сделать что-то подобное?

1 Ответ

0 голосов
/ 15 августа 2011

Здесь есть две вещи:

  1. Хранить список всех предыдущих версий. Посмотрите на мой ответ на этот вопрос: Идеи по проектированию базы данных для сбора контрольных записей

  2. Контролировать принятие изменений. Для этого вы можете добавить флаг подтверждения к каждой таблице, к которой имеют доступ только вы.

...