У меня есть таблица заказов, содержащая заказы клиентов. Клиент может иметь 1 открытый заказ за один раз. Открытый заказ может быть изменен клиентом. После того, как заказ закрыт, он больше не может быть изменен клиентом и доступен в основном для отчетности. Я бы предпочел сохранить открытые ордера и закрытые ордера в одной и той же таблице, но меня беспокоит то, что со временем эта таблица станет очень большой и производительность снизится. Причина, по которой я хочу сохранить обе таблицы в одной и той же, заключается в том, что мне нужно запускать отчеты по обеим таблицам, и их проще всего разместить в одной таблице. Мой вопрос заключается в следующем: действительно ли должно быть беспокойство, что наличие всех записей в одной таблице замедлит процесс?
Я определяю, открыт ли / закрыт ордер с помощью поля enum, называемого status. Любой заказ со статусом «новый, поставленный в очередь, упакованный, приостановленный» считается открытым, а любой заказ со статусом «выполненный» считается закрытым.
Не нужно обязательно. Зависит от мощности отношения. Как вы сказали в своем посте, похоже, что всегда есть 1:1
отношение присутствует и в таком случае у вас есть статус в той же таблице.
Либо вы можете иметь Status varchar(10)
столбец со значениями Open/closed
или лучше иметь два битовых поля, говорящие IsOpen bit
а также IsClosed bit
,
Других решений пока нет …