Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Структура базы данных для создания облага тегов, Создаем структуру для облака тегов 
:(
    Опции темы
KonstRuctor
Дата 18.2.2008, 02:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 31.3.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: нет



Не нашел на форуме подобной темы, поэтому решил открыть новую.
Задача: организовать вывод новостей.
И сделать не поиск по новостям, а облако тегов.
Структура таблицы news:
Код

CREATE TABLE `news` (
  `id` int(10) NOT NULL auto_increment,
  `newsdate` datetime NOT NULL default '0000-00-00 00:00:00',
  `top` tinytext NOT NULL,
  `text` longtext NOT NULL,
  `longtext` longtext,
  `filename` varchar(20) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251

Как видите, сейчас ключевых слов для новостей вообще нет.
Вопрос 1: как организовать добавление администратором ключевых слов при добавлении новости?
1) <textarea> и через запятую, потом резать средствами php
2) предложить админу поля, скажем, 10 полей input: одно поле=одно ключ.слово
3) предложить админу 5 полей и полюсик, где яваскриптом добавляем еще поля, если мало
Вопрос 2: Какова структура хранения ключевых слов в базе для последующей постройки облака тегов?
Спасибо!
PM MAIL WWW ICQ   Вверх
GeneralElectric
Дата 18.2.2008, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 2
Всего: 16



По вопросу номер два обычная, нормальная форма хранения в двух таблицах. Таблица тегов и таблица связей между тегами и записями.
ну и облако строится, соответственно, группировкой второй с джойном первой.

PM MAIL   Вверх
pompei
Дата 18.2.2008, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 7.9.2007

Репутация: нет
Всего: 6



Я бы сделал так: вводил бы тэги через запятую (просто, эффективно и так почти везде делают), а потом разделял их на ПХП, конвертировал (удалить лишние пробеллы, подправить регистр, найти схожести с имеющимися и пр.) и пихал в отдельную таблицу тэгов. При этом бы появилась бы ещё одна таблица для связи тэгов с новостями (связь многие-ко-многим).


--------------------
А всё оказывается гораздо проще: пассивные наноструктуры - активные наноструктуры - системы наносистем - молекулярные наносистемы - сингулярность! По пять лет на каждый этап.
PM MAIL   Вверх
KonstRuctor
Дата 18.2.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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 новости.
Получается, что "программа" - популярное ключевое слово и оно будет в облаке тегов крупнее.

Так?
PM MAIL WWW ICQ   Вверх
greef
Дата 21.2.2008, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 10.10.2007

Репутация: нет
Всего: нет



Нет. Тебе советовали 
Цитата

При этом бы появилась бы ещё одна таблица для связи тэгов с новостями (связь многие-ко-многим).

Те будет 3 таблицы в итоге. 1 - news (id, text, date etc), 2 - tags (id, tag) и 3 news_tag (id, idnews, id_tags)
Либо в последний таблице можно сделать составной ключ. 
В итоге у тебя в 3 таблице получиться что-то типа:
Код

id | id_news | id_tags
1 | 1| 1
2 | 1| 2
3 | 1| 3
4 | 2| 1
5 | 2| 5
6 | 3| 2
7 | 3| 8

те первая новость содержит 1,2,3 тэги, 2 новость - 1 и 5 и тд.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0580 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.