И так как лучше сделать
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/
Вот название: "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 как их сохранять в одном столбце или новую таблицу делать?
есть категория 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
как ключи ставить?
т.е. вот у нас таблица id | idCategoryParent |idCategoryChildren
как ключи ставить?
Спустя 1 час, 31 минута, 30 секунд (18.09.2012 - 22:53) dron4ik написал(а):
забудь про Children оно не нужно....
да, нужно две таблицы... в первой список с ид второй
в второй ид записи ,ид* первой и его Parents по отдельность
да, нужно две таблицы... в первой список с ид второй
в второй ид записи ,ид* первой и его Parents по отдельность
Спустя 18 минут, 13 секунд (18.09.2012 - 23:11) Guest написал(а):
чилдрен и есть ид записи ключи то какие выставлять?
Спустя 9 часов, 28 минут, 7 секунд (19.09.2012 - 08:39) glivera написал(а):
все прекрасно реализуемо одной таблицей..
id, id_parent
в id_parent пишется последний предок, т.е самый близкий по иерархии к текущему разделу. Соответственно, у этого родителя так же указан его ближайший родитель)
Рекурсивной функцией все перебирается все...
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
так?
т.е. должна быть доп таблица в которой будут
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. Только ключи и индексы - разные вещи.
Что имеем? Запрос по 2м полям, значит делаем составной индекс для a и b. Только ключи и индексы - разные вещи.
Спустя 9 минут, 8 секунд (19.09.2012 - 23:46) Guest написал(а):
inpost
а разве можно составной делать?
ведь поиск будет допустим, чтото вроде найти все дочерние категории или найти все родительские , как вы указали такое врятли понадобится, ?
а разве можно составной делать?
ведь поиск будет допустим, чтото вроде найти все дочерние категории или найти все родительские , как вы указали такое врятли понадобится, ?
Спустя 2 часа, 54 минуты, 31 секунда (20.09.2012 - 02:40) inpost написал(а):
Ну так гугл и почитай, что такое составные индексы ![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Для каждой таблицы свой индекс ставится.
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Для каждой таблицы свой индекс ставится.
Спустя 26 минут, 2 секунды (20.09.2012 - 03:06) Guest написал(а):
что такое составные индексы я знаю, но не совсем понимаю для чего они здесь могут быть реализованы
Спустя 56 секунд (20.09.2012 - 03:07) Guest написал(а):
составной может применяться если будет поиск сразу по двум условиям родитель и дочерний, но в данном случае будут выбираться либо все родительские либо все дочерние