Модель модели данных для истории, но быстро найти самую последнюю запись - PullRequest
0 голосов
/ 07 декабря 2011

Я проектирую изменение модели данных, и меня поразило, что должен быть лучший способ ...

У меня есть «журнал», в котором записано много записей на каждую родительскую сущность.В большинстве случаев мне просто нужна самая последняя запись в журнале, но мне все еще нужны более старые данные для аудита, отчетов и т. Д.

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

Но мне пришло в голову: я могу выбрать модель данных.Есть ли лучший шаблон дизайна для этого?

1 Ответ

1 голос
/ 07 декабря 2011

Физическая реализация может использовать таблицу журнала, диапазон которой разбит по дате.Можно использовать скользящее окно, в котором старые разделы архивируются или суммируются в виде сводной таблицы.Доступ к таблице может быть прозрачным для приложения, но доступ с датой сокращает запрос к соответствующему разделу (поиск в одном разделе более эффективен, чем во всей таблице).

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

...