[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Несколько категорий у новости
Xpund
Добрый день. Уже давно задаюсь вопросом как правильно давать новостям категории.

Теоретически имеем:
category
cat_id | cat_name
1 | Новости
2 | Видео
3 | Юмор

А вот как к новостям присваивать эти категории?
Имеем например таблицу с новостями
news
n_id | cat_id | text
1 вариант: и в cat_id через запятую вбиваем id категорий и потом вытягиваем explod'ом категории.

2 вариант: Или делаем отдельную таблицу
news_cat
n_id | cat_id
и уже в этой таблице забиваем несколько категорий, к примеру
1 | 1
1 | 2
2 | 3

Жду Ваши ответы, желательно с аргументами, надеюсь понятно объяснил


_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
vagrand
Отдельная таблица конечно

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
T1grOK
Первый вариант не соответствует первой нормальной форме, второй вариант правильней.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
stump
У вас блог на 10 уников в год или ресурсы ИТАР ТАСС ? Собственно для ресурсов ИТАР ТАСС ни один вариант не подходит для блога на 10 уников в год любой рабочий вариант сгодится.

_____________
Трус не играет в хокей
Valick
stump, хотел поставить вам минус в карму, но ограничусь устным предупреждением.
Фильтруйте пожалуйста базар. Первый вариант - это жёсткая денормализация, и сама по себе она не имеет места быть в проекте ни при каких обстоятельствах (обстоятельство говнокодера, я не принимаю во внимание), а только лишь как дополнение к нормальной форме (вариант номер два), для уменшения нагрузки на БД при определённых запросах, да и то только в том случае если мгновенная актуальность данных не критична.
Это трудно для понимания новичкам, поэтому единственно правильный ответ - это вариант номер два (таблица связи для отношения многие-ко-многим)

_____________
Стимулятор ~yoomoney - 41001303250491
123456
Допустим новостей будет 500.000, и по 3 категории на новость, т.е. 1.500.000 категорий в доп. таблице.
На странице отображается 10 новостей, и к каждой новости необходимо выводить ее категории...

Каким образом это делать? В голову пришла только одна мысль, сначала собираем id'ы отображаемых статей, после отправляем запрос на получение категорий, и после сортируем по id статей.

Xpund
Цитата (stump @ 27.06.2015 - 09:13)
У вас блог на 10 уников в год или ресурсы ИТАР ТАСС ? Собственно для ресурсов ИТАР ТАСС ни один вариант не подходит для блога на 10 уников в год любой рабочий вариант сгодится.

Тогда посоветуйте лучший вариант

_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
Valick
Xpund, вам уже три человека посоветовали, мало?


_____________
Стимулятор ~yoomoney - 41001303250491
Xpund
Valick
не мало, просто stump знает ещё способ, для крупных проектов. Мне для общего развития.

_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
Valick
Цитата (Xpund @ 1.07.2015 - 12:53)
просто stump знает ещё способ

вы уверены? вы читали его другие сообщения?

_____________
Стимулятор ~yoomoney - 41001303250491
sergeiss
Цитата (Xpund @ 1.07.2015 - 13:53)
просто stump знает ещё способ, для крупных проектов.

"Надежды юношей питают" (с) Н.В.Ломоносов.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

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