Каковы плюсы и минусы таблицы истории? - PullRequest
3 голосов
/ 06 октября 2010

ЧТО является лучшим методом?:

  1. Хранить записи истории в отдельной таблице истории

  2. Хранить записи истории в активной таблице с помощьюдругой статус?

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

Ответы [ 4 ]

2 голосов
/ 06 октября 2010

Я всегда предпочитал иметь отдельную таблицу с историей, просто потому, что она устраняет необходимость иметь «WHERE Status = 'LIVE'» или «WHERE CurrentRecord = 1» для получения последней записи (я не получув один дизайн, который требовал встроенного запроса, чтобы получить максимум (версия), чтобы получить последнюю версию).Это должно означать, что текущая таблица записей должна оставаться меньше, а время доступа может быть улучшено и т. Д. В худшем случае я видел специальный запрос к таблице, выбирающей неправильную версию записи, вызывая все видыпроблем позже.

Кроме того, если вы уже получаете историю из другой таблицы, вы можете разделить данные на части, поэтому вся история за один год находится в одной таблице / дБ, а вся история из другого - в другой.таблица / дб и т. д.

1 голос
/ 06 октября 2010

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

1 голос
/ 06 октября 2010

Pro:
Если вы храните историю в отдельной таблице, то эти данные будут доступны только тогда, когда вам нужно найти что-то из прошлого.В большинстве случаев главная таблица будет использоваться гораздо больше, чем историческая.Таким образом, это означает более быстрые результаты.
Con:
В проекте, который я работал, у меня была одна таблица с 350 столбцами (не спрашивайте, почему .....).Таким образом, эта таблица стала очень большой, поскольку данные были введены.В определенный момент записи перешли из «активного» в «закрытый» статус.У меня был соблазн переместить все закрытые записи в новую таблицу (историческую), но я понял, что это было медленнее - во многих запросах мне приходилось создавать объединения ....

Какокончательное мнение, я думаю, что это зависит от каждого случая, но я всегда буду думать сначала об отдельной таблице.

0 голосов
/ 06 октября 2010

Я бы выбрал отдельную таблицу, в противном случае настройка ограничений UNIQUE и FK может быть еще выполнимой, но слишком сложной.

...