powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД. Регионы и их детализация ...
4 сообщений из 4, страница 1 из 1
Проектирование БД. Регионы и их детализация ...
    #33063127
RomanSW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Подскажите пожалуйста как лучше поступить в данной ситуации:
Есть регионы, у регионов могут быть области или округа (например Москва имеет округа в округе может быть несколько управ, у управы может находится какое то метро и т.д.). Но это Москва, если брать другой город то там соответственно все иначе.
В итоге, когда мы идем от города и его детализируем до (например) метро, где (например) проживает сотрудник. Как видно, конечным результатом является метро где находится сотрудник (id метро привязывается к базе адресов сотрудников), а город, округ и т.д. всего лишь его территориальное отношение в сторону укрупнения.
Вопрос: как наиболее гибко предоставить возможность создания города, а далее округа если он нжуент. То есть если создали город Москва, создали округа и метро, а управы создавать не стали.
У меня пока на уме дерево, то есть:

id | parent_id | level | name |

1 | 0 | 0 | Москва
2 | 1 | 1 | АО 1
3 | 2 | 2 | Метро 1
4 | 1 | 1 | АО 2
5 | 4 | 2 | Метро 1

В базу адреса сотрудников заносим соответственно ID 3 и 5 но никак не 2 или 1.

Это удачное решение или нет? На что можно наткнуться при этой реализации?
Какие могут быть минусы?
Заранее благодарю за помощь ...
...
Рейтинг: 0 / 0
Проектирование БД. Регионы и их детализация ...
    #33063152
Paul Sacks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе нормальное дерево. Но все прочие ошибки и просчеты полезут во время реализации самого алгоритма а также при эксплуатации продукта. Чтобы все это просчитать необходимо применить как минимум элементы реляционной алгебры. В ней, на основе теории множеств и можно все просчитать.
...
Рейтинг: 0 / 0
Проектирование БД. Регионы и их детализация ...
    #33063209
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RomanSW
Вы говорите о несбалансированной иерархии. По сути есть два метода ее реляционной реализации. Первый - Ваш, то есть нормальное дерево. При этом у узла может быть признак "тип" (город, метро итп), может быть флаг "оконечный" (как знак того, что на такую вершину можно ссылаться как на максимально точный адрес" итп.

Другой вариант - так называемые skip-level hierarchies. Механизм примерно такой: допустим, есть таблицы "города", "округа", "управы" и "станции метро". Тогда, желая описать метро без управы, Вы вставляете в таблицу управ фейковую запись "округ X", и привязываете станцию метро к ней. Если достаточно города - вставляете фейковые записи "город Y" в таблицы округов, управ и метро. Соответственно, ссылаетесь всегда на метро, а уж там, анализируя флаги фейковости, получаете реальную картину.
...
Рейтинг: 0 / 0
Проектирование БД. Регионы и их детализация ...
    #33063830
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется что город с его территориальным делением -
это один объект - дерево.
Метро это ещё один объект - сеть.
Я бы построил отдельно дерево города
и сеть метро (его тоже можно привязать к дереву
города при достаточном уровне детализации),
а потом привязывал бы
адреса сотрудников к обеим структурам.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД. Регионы и их детализация ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]