- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Ув.знатоки, подскажите пожалуйста, что лучше для вложенных категорий одна таблица с чайлдами и парентами или несколько таблиц?
Все время свое делал несколько таблиц, но каждый свой новый проект стараюсь делать по другому, взвешивая предыдущие промахи и недоработки.
В настояшее время не могу однозначно определится что лучше и с чем удобней работать, на примере таблиц с категориями.
например вот такая структура
уровень1
- уровевень1.1
-- уровевень1.1.1
-- уровевень1.1.2
-- уровевень1.1.3
- уровевень1.2
-- уровевень1.2.1
- уровевень1.3
уровень2
- уровевень2.1
- уровевень2.2
-- уровевень2.2.1
уровень3
- уровевень3.1
- уровевень3.2
Количество уровней ограничено, скажем 3.
Спасибо.
Miracle добавил 27.10.2010 в 12:43
И дополнительны вопрос: можно ли сделать выборку категорий с названиями для уровня 1,2,3 одним запросом. Если да то как?
Есть такая тема как materialized path. Это когда при использовании child/parent так же вводится чаровое поле, в котором хранится вся последовательность категорий вверх в виде 1/5/8, а так же иногда непосредственные дети в виде 3,6,10,2. При индексированности этого поля поиск получается очень быстрый любой степени точности. Просто тупо like-ом select cat from table where MP like '1/5%' - выберет все в 1/5 категории.
В Вашем случае, учитывая вложенность 3, есть еще более быстрый и разумный подход чем 1/5/8 чаровое поле, это создать 3 поля вида root subroot childofroot ну и так далее если нужна более глубокая вложенность. Затраты на хранение минимальны, будет небольшой гимор при апдейтах конечно (крошечный на самом деле по сравнению с нестед сетс допустим тем же), а скорость и простота выборок Вас приятно удивит (просто выборка вида select cat from table where `subroot`=5 выберет все в 5 категории).
Опять же, в отличии от прямого подхода child/parent тут в бонусах меньший риск зацикливания, когда потом в Ваш код полезет школолопрограммер:)
как всегда спасибо за ответ.
надо будет теперь понять что вы написали :)
Miracle добавил 28.10.2010 в 10:35
всему поверил на слово (особенно вам), почти все понял,
вот тут правда не догнал
крошечный на самом деле по сравнению с нестед сетс допустим тем же
еще раз спасибо.
Miracle добавил 28.10.2010 в 10:38
В Вашем случае, учитывая вложенность 3, есть еще более быстрый и разумный подход чем 1/5/8 чаровое поле, это создать 3 поля вида root subroot childofroot
и тут , наверное, все же если вложенность 3 тогда нужно два поля?
потому что будет обращение к root от subroot и к subroot от subsubroot :)
Вчерашняя тема
спасибо но задачи немного разные.
да и меня больше интересовал вопрос, что лучше отдельные 3и таблицы с категориями, или все же система парент\чайлд.
я бы хранил все в одной таблице
id,
name,
parent_id
level
аргументируйте пожалуйста.
1. простота реализации
2. неограниченная вложенность
3. легко модифицировать
3. при необходимости в ту же таблицу можно добавить материализованный путь (materialized path) или левые и правые значения Nested Sets
4. удовлетворяет описанным вами задачам (выборку категорий с названиями для уровня 1,2,3 одним запросом)
спасибо
А можно одним запросом выбрать все элементы от нижнего чайлда до рута?
да, построить путь можно одним запросом ... надо джойнить таблицу саму с собой level раз
Вообще, не очень кошерно держать много таблиц... Конечно речь идет о сотнях, но все равно стоит придерживаться этого правила.
Я делал на одной таблице, ИМХО так логичнее.