![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
KonstRuctor |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 31.3.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: нет |
Не нашел на форуме подобной темы, поэтому решил открыть новую.
Задача: организовать вывод новостей. И сделать не поиск по новостям, а облако тегов. Структура таблицы news:
Как видите, сейчас ключевых слов для новостей вообще нет. Вопрос 1: как организовать добавление администратором ключевых слов при добавлении новости? 1) <textarea> и через запятую, потом резать средствами php 2) предложить админу поля, скажем, 10 полей input: одно поле=одно ключ.слово 3) предложить админу 5 полей и полюсик, где яваскриптом добавляем еще поля, если мало Вопрос 2: Какова структура хранения ключевых слов в базе для последующей постройки облака тегов? Спасибо! |
|||
|
||||
GeneralElectric |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: 2 Всего: 16 |
По вопросу номер два обычная, нормальная форма хранения в двух таблицах. Таблица тегов и таблица связей между тегами и записями.
ну и облако строится, соответственно, группировкой второй с джойном первой. |
|||
|
||||
pompei |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 7.9.2007 Репутация: нет Всего: 6 |
Я бы сделал так: вводил бы тэги через запятую (просто, эффективно и так почти везде делают), а потом разделял их на ПХП, конвертировал (удалить лишние пробеллы, подправить регистр, найти схожести с имеющимися и пр.) и пихал в отдельную таблицу тэгов. При этом бы появилась бы ещё одна таблица для связи тэгов с новостями (связь многие-ко-многим).
--------------------
А всё оказывается гораздо проще: пассивные наноструктуры - активные наноструктуры - системы наносистем - молекулярные наносистемы - сингулярность! По пять лет на каждый этап. |
|||
|
||||
KonstRuctor |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 31.3.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: нет |
pompei, спасибо. Я тоже хотел так сделать.
Посмотрите, правильно ли я придумал: 1) Таблица news без изменений, 2) Таблица tags: tag_id | id | tag 1 | 10 | программа 2 | 10 | хранитель 3 | 10 | экрана 4 | 11 | программа 5 | 11 | Photoshop 6 | 12 | программа 7 | 12 | ACDSee То есть ключевое слово "программа" относится к разным новостям и связано со своей новостью через id новости. Получается, что "программа" - популярное ключевое слово и оно будет в облаке тегов крупнее. Так? |
|||
|
||||
greef |
|
||||
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 10.10.2007 Репутация: нет Всего: нет |
Нет. Тебе советовали
Те будет 3 таблицы в итоге. 1 - news (id, text, date etc), 2 - tags (id, tag) и 3 news_tag (id, idnews, id_tags) Либо в последний таблице можно сделать составной ключ. В итоге у тебя в 3 таблице получиться что-то типа:
те первая новость содержит 1,2,3 тэги, 2 новость - 1 и 5 и тд. |
||||
|
|||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |