Допустим, у вас есть следующее
---------------------------
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, я начинаю задаваться вопросом, не выбрал ли я неправильное поле для ввода ..