Решении вопроса мультикатегорийно
Asmo |
|
---|---|
Делаю тут каталог, возник ряд вопросов по проектированию БД.
Как известно, в СЕ страницу можно привязать только к одной категории, видел я на seditioforge костыль для решения мультикатегорийности, но коль уж делать решил все с нуля, то и хотелось бы сразу уже правильно. мне нужно сделать так, чтобы одну страницу можно было добавлять в три разных категории, в идеале в N категорий, где N - кол-во категорий, ограничиваемое в настройках. Варианты: 1) Отдельно таблица для связей категорий и страниц. 2) Как в костыле с seditioforge - в странице в поле page_cat записывать коды категорий через запятую, а потом при построении списков выбирать через WHERE page_cat LIKE '%$c%' WHERE (page_cat1='$c' OR page_cat2='$c' OR page_cat3='$c') Но если разобраться то все равно ограничитель этот будет выставляться один раз, например максимум 3 категории на страницу, а там уже на выбор - хочешь одну, хочешь три. Так что собственно это требование не критичное. Вот хочу испросить совета как лучше это сделать. Страниц будет очень много, ибо это каталог будет. Я остановился на третьем варианте, идея с LIKE и второй таблицей мне не очень нравится из-за моей паранойи по поводу производительности. Интересует, какой из вариантов, на ваш взгляд, предпочтительнее с оглядкой на производительность, нагрузку на БД. Что скажут профессиональные прогеры я в общем то догадываюсь :) это 1 вариант, мне уже открыли глаза на "Нормализацию баз данных", хоть я и добросовестно прочел об этом все по ссылке на вики, но не уловил связи с моим случаем, из 5 примеров указывающих на необходимость нормализации, ни один не подходит. Собственно этот вопрос возникал у меня и раньше, все не устраивало что в СЕ нет мультикатегорийности как в вордпресс, но какой монстр вордпресс и какой шустрый СЕ, на том и стоим ведь :) |