Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Примечание. Для удобства на форуме может быть создано несколько различных разделов



Для удобства на форуме может быть создано несколько различных разделов. К примеру, на форуме по языкам программирования для того, чтобы не смешивать темы, относящиеся к различным языкам, имеет смысл создать следующие разделы: С++, PHP, Java и т. д.

В таблице forums присутствуют следующие поля: первичный ключ (id_forum), название раздела (name), правила форума (rule), краткое описание форума (logo), порядковый номер (pos), флаг, принимающий значение 1, если форум скрытый и 0, если общедоступный (hide).

Вот SQL-запрос, создающий таблицу forums

mysql> CREATE TABLE forums (id_forum int(6) NOT NULL auto_increment, name text, rule text, logo text, pos int(6) default NULL, hide int(1) default NULL, PRIMARY KEY (id_forum)) TYPE=MyISAM;

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

mysql> CREATE TABLE themes (id_theme int(11) NOT NULL auto_increment, name text, author text, id_author int(6) default NULL, hide int(1) default NULL, time datetime default NULL, id_forum int(2) default NULL, PRIMARY KEY (id_theme)) TYPE=MyISAM;

В таблице themes присутствуют следующие поля: первичный ключ (id_theme), название темы (name), автор темы (author), внешний ключ к таблице авторов (id_author), флаг, принимающий значение 1, если тема отмечена скрытой и 0, если отображается (hide) - это поле необходимо для модерирования, время добавления темы (time), внешний ключ к таблице форумов (id_forum), для того чтобы определить к какому разделу форума относится данная тема.

В таблице themes нормализация проведена частично, она содержит два внешних ключа:id_author и id_forum для таблиц посетителей и списка форумов, в тоже время в ней дублируется имя автора author, присутствующее также в таблице посетителей authors под именем name. Этот случай является примером денормализации предназначенной для того, чтобы не запрашивать каждый раз таблицу авторов при выводе списка тем и их авторов, чтобы обеспечить приемлемую скорость работы форума.

Создадим последнюю таблицу posts, в которой хранятся сообщения:

mysql> CREATE TABLE posts (id_post int(11) NOT NULL auto_increment, name text, url text, file text, author text, id_author int(6) default NULL, hide int(1) default NULL, time datetime default NULL, parent_post int(11) default NULL, id_theme int(11) default NULL, PRIMARY KEY (id_post)) TYPE=MyISAM;

В таблице posts присутствуют следующие поля: первичный ключ (id_post), тело сообщения (name), необязательная ссылка на ресурс, которую автор сообщения может ввести при добавлении сообщения (url), путь к файлу прикрепляемому к сообщению (file), имя автора (author), внешний ключ к таблице авторов (id_author), флаг, принимающий значение 1, если сообщение отмечено как скрытое и 0, если он отображается (hide) - это поле необходимо для модерирования, время добавления сообщения (time), сообщение ответом на которое является данное сообщение (parent_post), если это первое сообщение в теме - это поле равно 0, внешний ключ к тем (id_theme), для того чтобы определить к какой теме относится сообщение.

Убедимся, что все таблицы успешно созданы, выполнив команду SHOW TABLES.






Дата публикования: 2015-07-22; Прочитано: 263 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...