Другие языки программирования и технологии

как лучше хранить в базе данных - страны, регионы и города?

Есть два варианта
1. Три таблицы, связанные внешними ключами
2. Одна таблица вида id | parent_id | name
Товарищ мой настаивает на втором вырианте. Мне ближе первый. Потому, что внятных объяснений, почему второй вариант лучше, я не услышал.
Конечно в трех (нормализация БД) . А по поводу варианта Вашего товарища - к какому объекту относится поле name (к стране? , к региону? или к городу?) . Не, ну если конечно страну будет представлять id, регион - parent_id, а город - name, то сколько же записей придется заводить на все города всех регионов и всех стран. А поля id и parent_id какую будут нести нагрузку в этом случае (наверняка удобную для машины, а для восприятия человеком???) . Типа, угадай страну с id=5, регион с parent_id=10?
Алексей Игнатущенко
Алексей Игнатущенко
5 182
Лучший ответ
2 структура забавнее тем, что можно перетаскивать районы из региона в регион или даже между странами путем обновления одной записи. Выборка соседей по региону - быстрее. абсолютно логично и красиво тогда выглядит, скажем процедура слияния регионов - надо создать новый регион, прописав ему правильного парента, а затем просто пройтись по детям объединяемых регионов и прописать им нового парента. С точки зрения SQL здесь все очень красиво. И при правильно продуманном интерфейсе все не менее красиво и быстро. Человек всегда работает только с каким-то уровнем дерева. а не со всей базой. остальная база его слабо чешет.

PS. Структура и вид сохраненного в базе никак не связаны с "понятностью" - они должны оптимально там храниться. И угадать страну с id =5 - 1 запрос. Меньше не дано.
Денис Шаронов
Денис Шаронов
13 013
рассмотри как это реализовано в КЛАДР у налоговой
граматно все не первый год
Роман *******
Роман *******
3 220