Представьте, что у меня есть таблица заказов со столбцами OrderID (PK), CustomerID, CustomerOrderN и так далее. Теперь мне нужно добавить возможность «закрыть» ордера с указанием причины, по которой ордер закрыт (например, «предложенная цена слишком высока для клиента», «недоступен», «клиент попросил закрыть заказ»).
Вопрос 1. Каков наилучший и правильный способ реализовать это при проектировании базы данных?
Я думаю, что лучший способ - создать закрытый столбец, который может быть нулевым(если ордер открыт) и если не ноль (т.е. если ордер закрыт), то значение указывает на другую таблицу OrderCloseReasons.
Вопрос 2. Что если у меня уже есть :) булев столбец Закрыто в таблице «Заказы», и теперь мне нужно реализовать возможность указать причины закрытия. Я не могу много реорганизовать, потому что система уже не такая маленькая, поэтому сложно реорганизовать схему базы данных. Как лучше всего добавить возможность указать причины закрытия в таком случае?
Я думаю, что если я просто добавлю столбец CloseReasonID в таблицу Orders, это не будет хорошо. Но я не уверен.
Заранее спасибо.