Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Объект пренадлежит группе. Как узнать что объект пренадлежит группе на уровень выше?

714
09 декабря 2011 года
clgs
226 / / 29.10.2008
Добрый день.
Суть: Объект пренадлежит группе. Как узнать что объект пренадлежит группе на уровень выше?
А теперь подробнее. Есть таблица со странами, и другие территориальные деления. Проблема в том что может быть разные уровни вложенности, т.е Страна/Область/Район/Город или Страна/Город.
Я не хочу создавать отдельное поле для каждого уровня вложенности, а запоминать только одно значение к которому происходит привязка или идентификатор.
Требование высокая скорость выборки объектов (>300k)
Я например привязал объект к городу, а как его найти если я ищу по району или стране. Не совсем понятно.

Подскажите как сделать лучше и чтоб быстро работало.
277
10 декабря 2011 года
arrjj
1.7K / / 26.01.2011
Называется это иерархические данные.
Имхо самый нересурсоёмкий способ для реализации такой пакости - создать доп табличку id parent_id, и хранить в ней данные таким образом:
пример Страна1/Область1/Район1/Город1 и Страна2/Город2
Код:
id                    parent
Страна1               Страна1
Область1              Область1
Область1              Страна1
Район1                Район1
Район1                Область1
Район1                Страна1
Город1                Город1
Город1                Район1
Город1                Область1
Город1                Страна1
Страна2               Страна2
Город2                Город2
Город2                Страна2

И поиск в 1 запрос select * from blahblah where условиепоиска and группа in (select * from tableidparent where parent=группа)
[COLOR="silver"]--Это в теории, на практике я никогда такого не делал[/COLOR]

Хотя в нете есть много примеров рекурсивных выборок или хранимой процедурой такое можно реализовать и в ней loop/end loop, тут уж на что фантазии хватит и что на практике окажется более приемлемым.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог