Вопрос о структуре базы данных SQL - PullRequest
1 голос
/ 23 сентября 2011

Как можно структурировать базу данных, в которой у вас есть City, State и Country, а у городов иногда есть состояния, а иногда нет?Вы бы просто положили State_ID (по умолчанию NULL) и Country_ID в City или есть лучший способ приблизиться к нему?

Ответы [ 3 ]

3 голосов
/ 23 сентября 2011

Ваш подход кажется точным.Если не существует принудительной иерархии, у вас нет большого выбора.

Когда реальный мир не соответствует нашей схеме, у нас нет другого выбора, кроме как заставить нашу схему соответствовать реальному миру.

0 голосов
/ 23 сентября 2011

Собираюсь принять предложенный ответ. Но просто хочу отметить, что еще один подход, не упомянутый здесь, будет City_States таблицей «многие ко многим». Это было бы особенно полезным подходом для некоторых городов, находящихся в двух штатах.

0 голосов
/ 23 сентября 2011

Если ваш администратор базы данных очень жестко настроен, альтернативой может быть наличие в таблице State специальных записей "Нет состояний" Вам потребуется один из них для каждого Country (по крайней мере, для каждого, в котором есть города без гражданства).

...