169 похожих чатов

Привет. Тупой, навреное, вопрос, но... гоните меня, насмехайтесь.... Короче если я

хочу составить БД-справочник, где будут Континенты, Страны, Области, Области областей, итд и так вплоть до городов.
При этом получается, что степеней вложенности областей может быть разное кол-во, скорее всего - хрен его знает, как там в штатах и эмиратах и подобном.

Как бы вы строили такую БД?
Мне видится два варианта и я хз, что будет лучше с точки зрения производительности.

1) Одна таблица и всё. условно id, Name, Type, Parent_id

2) Таблицы на каждый тип сущности:
- Continents (id, name...)
- Countries (id, name, continent_id...)
- Regions (id, name, county_id)
- Subregions1 (id, name, region_id...)
- Subregions2 (id, name, subregion1_id...)
.....
- Cities (id, name, subregion1_id, subregion2_id .... subregionN_id...) Ну и, наверное NULL'ами забивать лишние subregion для городов, если они не по максималке вложены.


Мне как-то больше импонирует первый вариант. Но услышал бы мнения.

СУБД postgresql, скорее всего будет. Т.е. с рекурсивными CTE должно быть норм всё

2 ответов

29 просмотров

Страна может быть в нескольких континентах.Город может быть в нескольких континентах

Первый вариант. Сам с таким работаю. Но у нас оракл, где есть connect by. И всего 5 уровней - от страны до городов.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта