Нарушают ли города и индекс в таблице адресов BCNF - PullRequest
0 голосов
/ 02 августа 2020

Допустим, у вас есть следующее

 ---------------------------
  attribute      constraints
| --------       -----------   
| id             (PK)
| location_name  **
| street         
| zipcode        
| city           

** realistically Unique, but not going to use for future proofing? 

Будет ли это нарушать BCNF, поскольку почтовый индекс может использоваться для поиска города? Хотя города могут использовать общие почтовые индексы и наоборот, город не может быть разделен на два отдельных почтовых индекса, если другой город является частью этого почтового индекса? (zipcode1 -> city1) и (zipcode2 -> city1 and city2)

(обратите внимание, что почтовый индекс и город не являются составным суперключом, поскольку несколько местоположений могут быть связаны с одним и тем же почтовым индексом и городом). BCNF предполагает, что вам следует создать полностью отдельную таблицу ТОЛЬКО для пары городов и почтовых индексов?

Состояния опущены, потому что эта база данных предназначена для одного штата. Хотя в этом случае вам нужно иметь 3 таблицы, поскольку почтовый индекс не может быть в нескольких состояниях (редактировать: очевидно, есть, но при условии, что их нет). Мне кажется, это слишком глупо, правда, и поэтому потребуется слишком много союзов. это очень ценно). Я попытался найти ответ, потому что решил, что это будет обычным делом, но ничего не нашел. Учитывая мою неспособность организовать и обработать математическую логику c, я начинаю задаваться вопросом, не выбрал ли я неправильное поле для ввода ..

1 Ответ

0 голосов
/ 03 августа 2020

Что на самом деле определяет почтовый индекс Five di git? Насколько я понимаю, это определяет Почту. Этого достаточно, чтобы направить каждое почтовое сообщение откуда бы оно ни было в почтовое отделение назначения. Это почтовое отделение затем доставит его локально.

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

Район, обслуживаемый почтовым отделением, обычно является частью некоторого сообщества, в котором находится почтовое отделение, например, города. Но есть причуды. Жителей Magalloway, ME обслуживает почтовое отделение в соседнем Эрроле, штат Нью-Хэмпшир. Поэтому они используют почтовый индекс 03579, такой же, как и жители центра Эррола. Письма пересылаются в почтовое отделение Эррола, а затем доставляются им в штат Мэн. Это может показаться очень странным, но это хорошо работает с точки зрения пробега.

карта 03579

...