Прошу совета по структуре таблиц.
Допустим, есть таблица countries (Страны. Напр. Россия):
country_id (PK)
country_name
Далее таблица districts (Округа. Напр.: Центральный федеральный округ):
district_id (PK)
district_name
country_id (FK countries(country_id))
Так же есть таблица subjects (Субъекты. Напр.: Московская область):
subject_id (PK)
subject_name
district_id (FK districts(district_id))
country_id (FK countries(country_id))
И еще таблица cities (Города):
city_id (PK)
city_name
subject_id (FK subjects(subject_id ))
district_id (FK countries(district_id))
country_id (FK countries(country_id))
Вопрос:
Правильно ли организована структура?
Либо нужно удалить дополнительные внешние ключи из нижних таблиц и делать выборку по иерархии? Если да - то почему?
Большое спасибо!
Привязки лишние. Возможны противоречивые данные. Например город может находится в одной стране, а регион в другой. Не храните в таблице города страны (например), получайте к ним доступ по иерархии.
UPD:либо можно привязываться непосредственно к "родителю"
country_id (PK)
country_name
district_id (PK)
district_name
country_id (FK countries(country_id))
subject_id (PK)
subject_name
district_id (FK districts(district_id))
country_id (FK districts(country_id))
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В документации Bootstrap 41 в разделе Modal непонятное обозначение HTML top-level positions ссылка
Я увлекся веб версткой сайтов из psd шаблоновХочу спросить какие приложения помогут мне в этом
Входит ли custom elements в группу normal elements?