Шаблон проектирования хранения истории деятельности - PullRequest
0 голосов
/ 04 ноября 2011

Учебный пример:

Если у меня есть, например, объект библиотеки.В библиотеке есть книги.У каждой книги есть общая информация, такая как имя, дата, .... и некоторые другие зависимости, такие как Autor, Reseller, ....

У меня есть объект Person.Если человек прочитал книгу, то я хочу сделать новую запись в историю.

А теперь проблема, что лучше:

1) Создание статической записи в истории со всеми данными изСущность книги и его зависимости (в этом случае, если книга будет изменена, то история не будет актуальной)

или

2) Строковая зависимость от объекта Book (В этом случае история будет актуальна, но в каждом запросе я должен смотреть на все зависимости)

Я предполагаю, что Книги будут изменены offen

И история будет отображаться в Персонепрофиль.(Этот предположительный ответ будет Ответ 1 ))

Но должна ли история основываться на реальных данных Книги?Или история должна иметь дату информационной формы, где была создана история?

Книга и Персона - только примеры

1 Ответ

1 голос
/ 04 ноября 2011

А теперь проблема, что лучше:

1) Создать статическую запись в истории со всеми данными из сущности Book и его зависимости (в этом случае если книга будет изменена, то история не будет актуальной)

или

2) Зависимость магазина от объекта Book (в этом случае история будет актуально, но в каждом запросе я должен посмотреть на все зависимости)

Не уверен, что вы на самом деле подразумеваете здесь под "фактическим", но лучший выбор - тот, который соответствует вашим потребностям.

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

Что вы хотите видеть в профиле?

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

Для получения некоторой информации о хранилищах данных эта статья IBM Redbook может быть полезна.

...