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

У меня есть таблица заказов, содержащая заказы клиентов. Клиент может иметь 1 открытый заказ за один раз. Открытый заказ может быть изменен клиентом. После того, как заказ закрыт, он больше не может быть изменен клиентом и доступен в основном для отчетности. Я бы предпочел сохранить открытые ордера и закрытые ордера в одной и той же таблице, но меня беспокоит то, что со временем эта таблица станет очень большой и производительность снизится. Причина, по которой я хочу сохранить обе таблицы в одной и той же, заключается в том, что мне нужно запускать отчеты по обеим таблицам, и их проще всего разместить в одной таблице. Мой вопрос заключается в следующем: действительно ли должно быть беспокойство, что наличие всех записей в одной таблице замедлит процесс?

Я определяю, открыт ли / закрыт ордер с помощью поля enum, называемого status. Любой заказ со статусом «новый, поставленный в очередь, упакованный, приостановленный» считается открытым, а любой заказ со статусом «выполненный» считается закрытым.

1

Решение

Не нужно обязательно. Зависит от мощности отношения. Как вы сказали в своем посте, похоже, что всегда есть 1:1 отношение присутствует и в таком случае у вас есть статус в той же таблице.

Либо вы можете иметь Status varchar(10) столбец со значениями Open/closed или лучше иметь два битовых поля, говорящие IsOpen bit а также IsClosed bit,

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector