[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: каталог
Guest
Доброго времени суток. Ребят подскажите, как лучше организовать каталог. есть категории, у одной категории может быть сколько угодно родительских категории. понятно что нужна будет проверка на рекурсии категорий.
И так как лучше сделать
1) создать 2 таблицы первая категории и вторая соотношение категорий с столбцами
id id_parent id_children

2) или создать одну таблицу и в поле "родительские категории" хранить данные в виде 1,2,12,21 а потом парсить полученное значение?



Спустя 32 минуты, 55 секунд (18.09.2012 - 18:46) redreem написал(а):
id + id_parent - вполне достаточно, прогнано на разных задачах и никаких проблем не вызывает.

Спустя 34 минуты, 45 секунд (18.09.2012 - 19:21) Guest написал(а):
т.е. создавать вторую таблицу?

Спустя 36 минут, 21 секунда (18.09.2012 - 19:57) redreem написал(а):
нет, в одной хранить id,id_parent,description. все.

Спустя 8 минут, 57 секунд (18.09.2012 - 20:06) Guest написал(а):
а если у меня несколько род категорий?

Спустя 3 минуты, 39 секунд (18.09.2012 - 20:10) inpost написал(а):
Не знаю, что данная тема делает в разделе для знатоков, потому что тематику данного вопроса не знаешь.
Вот название: "nested sets", можешь загуглить. Или тут почитать: http://phpclub.ru/faq/Tree/

Спустя 32 минуты, 8 секунд (18.09.2012 - 20:42) redreem написал(а):
Guest

ну и что, что несколько? не вижу проблемм.

Спустя 2 минуты, 18 секунд (18.09.2012 - 20:44) Guest написал(а):
нет это все не то, вы усложняете,
есть категория 10 для нее родительские 1,2,3 как их сохранять в одном столбце или новую таблицу делать?

Спустя 31 минута, 59 секунд (18.09.2012 - 21:16) redreem написал(а):
ах ты блин, невнимательно прочитал топик. да, конечно, 1-й вариант.

Спустя 5 минут, 26 секунд (18.09.2012 - 21:22) Guest написал(а):
redreem а ключи, как расставить в таблице? вернее какие и где?
т.е. вот у нас таблица id | idCategoryParent |idCategoryChildren
как ключи ставить?

Спустя 1 час, 31 минута, 30 секунд (18.09.2012 - 22:53) dron4ik написал(а):
забудь про Children оно не нужно....
да, нужно две таблицы... в первой список с ид второй
в второй ид записи ,ид* первой и его Parents по отдельность

Спустя 18 минут, 13 секунд (18.09.2012 - 23:11) Guest написал(а):
чилдрен и есть ид записи ключи то какие выставлять?

Спустя 9 часов, 28 минут, 7 секунд (19.09.2012 - 08:39) glivera написал(а):
все прекрасно реализуемо одной таблицей..
id, id_parent
в id_parent пишется последний предок, т.е самый близкий по иерархии к текущему разделу. Соответственно, у этого родителя так же указан его ближайший родитель)
Рекурсивной функцией все перебирается все...

Спустя 2 часа, 16 минут, 48 секунд (19.09.2012 - 10:56) Guest написал(а):
аааааааааааааааааааа да вы издеваетесь

категория "Кошки" для нее родители "Кошачьи" , "Полосатые-усатые", одновременно для одной две родительские

Спустя 1 час, 56 минут, 3 секунды (19.09.2012 - 12:52) inpost написал(а):
Так тебе это надо? Связь в БД: "многие ко многим". Через таблицу посредника реализуется.

Спустя 1 минута, 32 секунды (19.09.2012 - 12:54) Guest написал(а):
inpost
т.е. должна быть доп таблица в которой будут
id | idCategoryParent |idCategoryChildren

так?

Спустя 4 часа, 40 минут, 46 секунд (19.09.2012 - 17:35) inpost написал(а):
Да.

Спустя 19 минут, 12 секунд (19.09.2012 - 17:54) Guest написал(а):
ключи какие и как посоветуете поставить?

Спустя 2 часа, 2 минуты, 15 секунд (19.09.2012 - 19:56) inpost написал(а):
Какие ключи? Ключи - это связь таблиц. Если ты связываешь таблицу 1 с таблицей 2 по полю ID с одной стороны, и ID_CategoryParent - то ключ между ними, вот и всё.

Спустя 3 часа, 35 минут, 31 секунда (19.09.2012 - 23:32) Guest написал(а):
по-моему по индексу нужно добавить 2вум полям, для ускорения поиска- дочернему и родительскому полю, те.е в момент обращения к таблице ускорение работы произойдет или нет?

Спустя 5 минут, 9 секунд (19.09.2012 - 23:37) inpost написал(а):
WHERE `a` = 'x' AND `b` = 'y'
Что имеем? Запрос по 2м полям, значит делаем составной индекс для a и b. Только ключи и индексы - разные вещи.

Спустя 9 минут, 8 секунд (19.09.2012 - 23:46) Guest написал(а):
inpost
а разве можно составной делать?
ведь поиск будет допустим, чтото вроде найти все дочерние категории или найти все родительские , как вы указали такое врятли понадобится, ?

Спустя 2 часа, 54 минуты, 31 секунда (20.09.2012 - 02:40) inpost написал(а):
Ну так гугл и почитай, что такое составные индексы smile.gif
Для каждой таблицы свой индекс ставится.

Спустя 26 минут, 2 секунды (20.09.2012 - 03:06) Guest написал(а):
что такое составные индексы я знаю, но не совсем понимаю для чего они здесь могут быть реализованы

Спустя 56 секунд (20.09.2012 - 03:07) Guest написал(а):
составной может применяться если будет поиск сразу по двум условиям родитель и дочерний, но в данном случае будут выбираться либо все родительские либо все дочерние
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.