|
|
|
| Пытаюсь спроектировать рубрификатор, но никак не могу придумать чего-нибудь сносного.
Если основываться, например, на двух таблицах:
Create table rubrics
id int autoincrement
rubric varchar
parent_rubric int
Create table rubricator
id int autoincrement
id_aticle int
id_rubric int
То тогда не могу даже элементарную задачу решить:
Получить таблицу всех рубрик некоторой подрубрики с количеством статей в каждой, учитывая статьи во вложенных рубриках.
Может быть есть более разумная структура таблиц рубрификации?
Вложенность рубрик неограничена.
Одна статья может принадлежать неограниченному количеству подрубрик. (Но при подсчёте, если статья входит одновременно в несколько различных подрубрик одной рубрики, она должна считаться всего один раз) | |
|
|
|
|
|
|
|
для: Eugene77
(20.06.2009 в 14:18)
| | Жаль, что нет пока советов.
Сам я тем временем вот до чего додумался:
Первую таблицу сокращу
Create table rubrics (
id int autoincrement
rubric varchar UNIQUE COMMENT 'Название одной рубрики или подрубрики'
)
|
Во второй таблице буду указывать весь путь от корневой
рубрики через все подрубрики до самой статьи:
Create table rubricator (
id int autoincrement
id_aticle int
id_rubric varchar KEY COMMENT 'Перечисление номеров всех подрубрик на пути к статье'
UNIQUE KEY `My_way` (id_aticle, id_rubric)
)
|
Причём в id_rubric будут записываться строки типа |0001|0034|0073|0006
где числа в строке берутся из rubrics.id
Тогда я вроде бы освобождаюсь от сложных запросов.
И нагрузка на сервер меньше и мне проще.
Правильно я рассуждаю?
Смущает то, что это как-то не в духе классики.
Откликнитесь, пожалуста, более опытные программисты! | |
|
|
|
|
|
|
|
для: Eugene77
(20.06.2009 в 14:18)
| | - | |
|
|
|