Я боролся с тем, как я должен указать, что определенная запись в базе данных является «резервной» или по умолчанию записью. Я также борется с тем, как уменьшить свою проблему до простого заявления о проблеме. Я приведу пример.Индикация первичной записи/записи по умолчанию в базе данных
Предположим, что вы строите очень простое приложение для доставки. Вы будете принимать заказы, и вам нужно будет решить, какой склад отправит их.
Предположим, что у вас есть несколько городов, у которых есть собственные специализированные склады *; если заказ поступит из одного из этих городов, вы отправите его с склада этого города. Если заказ поступает из любого другого города, вы хотите отправить его с определенного склада. Мы будем называть этот другой склад резервным складом.
Вы можете выбрать схему, как это:
Warehouses
WarehouseId
Name
WarehouseCities
WarehouseId
CityName
Решение должно обеспечивать ноль или один резервные склады.
Вам необходимо указать, какой склад следует использовать, если для данного города нет складов. Если это действительно имеет значение, вы делаете это на SQL Server 2008.
EDIT: Чтобы быть ясным, все действующие города не присутствуют в таблице WarehouseGities. Возможно получение заказа для Города, не указанного в WarehouseCities. В таком случае мы должны иметь возможность выбрать резервный склад.
Если было разрешено какое-либо количество складов по умолчанию, или если я назначал хранилища по умолчанию, скажем, для состояний, я бы использовал таблицу DefaultWarehouse. Я мог бы использовать такую таблицу здесь, но мне нужно было бы ограничить ее ровно одной строкой, которая не кажется правильной.
Как вы бы описали резервный склад?
* Конечно, в этом примере мы сбрасывать со счетов возможность, что там может быть несколько городов с таким же именем. Страна, в которой вы строите это приложение, для строгого соблюдения ограничений уникальности для всех имен городов.
Какая версия SQL Server? 2008? – EBarr
Я удивлен, что это важно. Я надеялся избежать эзотерического решения, требующего определенной версии SQL Server; это не похоже на проблему, которая потребует исключительной функциональности. Тем не менее, это 2008. Я обновлю теги и вопрос. – Eric
Мне любопытно проголосовать и закрыть голос. Лицо, которое меня помешало: вам не понравилось название или выяснили, что вопрос неясен? – Eric