Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проектирование БД. Регионы и их детализация ...
|
|||
|---|---|---|---|
|
#18+
Всем привет. Подскажите пожалуйста как лучше поступить в данной ситуации: Есть регионы, у регионов могут быть области или округа (например Москва имеет округа в округе может быть несколько управ, у управы может находится какое то метро и т.д.). Но это Москва, если брать другой город то там соответственно все иначе. В итоге, когда мы идем от города и его детализируем до (например) метро, где (например) проживает сотрудник. Как видно, конечным результатом является метро где находится сотрудник (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. Это удачное решение или нет? На что можно наткнуться при этой реализации? Какие могут быть минусы? Заранее благодарю за помощь ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 17:39 |
|
||
|
Проектирование БД. Регионы и их детализация ...
|
|||
|---|---|---|---|
|
#18+
В принципе нормальное дерево. Но все прочие ошибки и просчеты полезут во время реализации самого алгоритма а также при эксплуатации продукта. Чтобы все это просчитать необходимо применить как минимум элементы реляционной алгебры. В ней, на основе теории множеств и можно все просчитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 17:52 |
|
||
|
Проектирование БД. Регионы и их детализация ...
|
|||
|---|---|---|---|
|
#18+
RomanSW Вы говорите о несбалансированной иерархии. По сути есть два метода ее реляционной реализации. Первый - Ваш, то есть нормальное дерево. При этом у узла может быть признак "тип" (город, метро итп), может быть флаг "оконечный" (как знак того, что на такую вершину можно ссылаться как на максимально точный адрес" итп. Другой вариант - так называемые skip-level hierarchies. Механизм примерно такой: допустим, есть таблицы "города", "округа", "управы" и "станции метро". Тогда, желая описать метро без управы, Вы вставляете в таблицу управ фейковую запись "округ X", и привязываете станцию метро к ней. Если достаточно города - вставляете фейковые записи "город Y" в таблицы округов, управ и метро. Соответственно, ссылаетесь всегда на метро, а уж там, анализируя флаги фейковости, получаете реальную картину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 18:13 |
|
||
|
Проектирование БД. Регионы и их детализация ...
|
|||
|---|---|---|---|
|
#18+
Мне кажется что город с его территориальным делением - это один объект - дерево. Метро это ещё один объект - сеть. Я бы построил отдельно дерево города и сеть метро (его тоже можно привязать к дереву города при достаточном уровне детализации), а потом привязывал бы адреса сотрудников к обеим структурам. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2005, 09:18 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1545885]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 274ms |
| total: | 382ms |

| 0 / 0 |
