Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
the_Serge
Зарегистрирован: 26.02.2003 Сообщения: 4 Откуда: Moscow
|
Добавлено: Ср Фев 26 2003 20:15 Заголовок сообщения: Помогите совет по проектированию БД |
|
|
Человеки! Помогите советом, как лучше спроектировать БД (сервер MySQL) с такими условиями: Есть статья, есть категории, есть подкатегории у подкатегорий есть подкатегории и так до ... вообщем кол-во подкатегорий N и заранее не известно. Сильней всего интересует хранение и привязка всяких там категорий и подкатегорий к статье. Кто чем сможет |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Ср Фев 26 2003 23:07 Заголовок сообщения: Предлагаю сделать 20-ти кратную вложенность и не мучиться. Дальше все равно никто не забредёт. Личный опыт. (-) |
|
|
- |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
the_Serge
Зарегистрирован: 26.02.2003 Сообщения: 4 Откуда: Moscow
|
Добавлено: Чт Фев 27 2003 11:20 Заголовок сообщения: OK спасибо, положусь на Ваш опыт:) (-) |
|
|
OK спасибо, положусь на Ваш опыт![Smile](images/smiles/icon_smile.gif) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
DrBorman Гость
|
Добавлено: Чт Фев 27 2003 13:36 Заголовок сообщения: Сделай отдельную таблицу, в которой храни все разделы. Свяжи таблицы первичными ключами.(-) |
|
|
- |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
the_Serge
Зарегистрирован: 26.02.2003 Сообщения: 4 Откуда: Moscow
|
Добавлено: Чт Фев 27 2003 13:51 Заголовок сообщения: тоже пришел к такому выводу + parent_id для учета вложенности (-) |
|
|
тоже пришел к такому выводу + parent_id для учета вложенности. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
the_Serge
Зарегистрирован: 26.02.2003 Сообщения: 4 Откуда: Moscow
|
Добавлено: Чт Фев 27 2003 13:58 Заголовок сообщения: А если вот так (+) |
|
|
т.е. одна и та-же подкатегория может принадлежать нескольким категориям |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Пт Фев 28 2003 10:28 Заголовок сообщения: Ну не парься, а (+) |
|
|
Сделай жесткую 20-ти кратную вложенность и хороший поиск по всей базе.
20-ти кратная вложенность обеспечит хорошую каталогизацию, удобный поиск обеспечит безбедную жизнь для пользователей.
Всякие "если и почему" рекомендую отправить в сад. Либо жесткая иерархия (классическая реляционная модель), либо слабо связанная база (типа базы какого-нибудь Яндекса или Google).
Рекомендую не заморачиваться на бесконечную вложенность. Иначе структура база дико усложнится и скорость обработки запросов упадет в 10-100 раз.
Подойди трезво к проблемме. С достаточной долей прагматизма, а не философствования на тему "а что если...". |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Key Гость
|
Добавлено: Пт Фев 28 2003 17:46 Заголовок сообщения: Re: А если вот так (+) |
|
|
Тогда делаешь таблицу привязок то бишь отношений между родительскими и дочерними ключами. Классическая система отношений многие ко многим. 1 таблица содержит записи этой твоей древовидности ну типа Rec_Id, Namе А вторая таблица связок. Rel_Id,Rec_Rec_id,Parent_Rec_Id,Child_Rec_Id. Прев ый ID для уникальности записи Дальше код из первой таблицы код ее родителя и потомка. Таким образом можно описать сколь угодно разветвленную структуру но запаришься искать, строить анализировать. Лучше стандартную древовидность один ко многим тогда эдементарно делается бесконечная древовидность одно таблице как и предлагали Id, Name,Parent_Id может еще Level засадить для красоты показывать уровень вложенности. И дерево по такой структуре беспроблемнно строится даже если автоматически все. А по одной ветке так вообще без проблем. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
I_one Гость
|
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Andy-C Гость
|
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|