
- •Оглавление
- •Введение
- •Постановка задачи
- •Краткое описание предметной области
- •Описание таблиц базы данных
- •Описание процедур базы данных
- •Триггеры и джобы
- •Тестирование
- •Тестирование хранимых процедур и триггеров
- •Тестирование «джобов»
- •Оценка нормализации базы данных
- •Диаграмма базы данных
- •Заключение
- •Библиографический список
- •Приложение
Краткое описание предметной области
Проектируемая база данных предназначена для организации веб-форума.
Форум организован в виде следующей иерархии: рубрика – тема – сообщение.
На форуме имеются группы, в которых проводятся голосования.
Любой пользователь может быть зарегистрирован на форуме, далее создавать темы, рубрики, оставлять сообщения, участвовать в голосованиях, добавляться в различные группы.
Регистрация состоит из заполнения специальной формы с личными данными пользователя. Также у пользователя имеется возможность изменения личной информации уже после регистрации.
Также на форуме ведется статистика для каждого пользователя.
Помимо этого на форуме ведется база заблокированных пользователей (временно или полностью), получающих срочный или бессрочный отказ в доступе к форуму.
В целях безопасности по каждому пользователю ведется статистика его активности (ip-адрес, с которого пользователь последний раз посещал форум; время последнего посещения)
Описание таблиц базы данных
Название |
Описание |
Тип |
user_info (таблица личной информации пользователя) |
||
id_user |
Идентификатор пользователя |
INTEGER |
db_user |
Имя user и login в БД |
NVARCHAR |
nikname |
Ник пользователя |
NVARCHAR |
name |
Имя пользователя |
NVARCHAR |
surname |
Фамилия пользователя |
NVARCHAR |
Адрес электронной почты |
NVARCHAR |
|
birthday |
День рождения |
SMALLDATETIME |
city |
Город |
NVARCHAR |
telephone |
Телефон |
NVARCHAR |
sex |
Пол |
BIT |
time_zone |
Временная зона |
SMALLINT |
regdate |
Дата регистрации |
SMALLDATETIME |
user_activity (таблица активности пользователя) |
||
id_user |
Идентификатор пользователя |
INTEGER |
topics |
Кол-во созданных тем |
INTEGER |
answers |
Кол-во ответов |
INTEGER |
visitor_statistic (таблица статистики пользователя) |
||
id_user |
Идентификатор пользователя |
INTEGER |
last_ip |
ip-адрес последнего посещения |
VARCHAR |
last_time |
Время последнего посещения |
SMALLDATETIME |
rubric (таблица рубрик) |
||
title |
Название рубрики |
NVARCHAR |
id_rubric |
Идентификатор рубрики |
INTEGER |
topics |
Количество тем в рубрике |
INTEGER |
popularity |
Популярность рубрики |
INTEGER |
author |
Автор рубрики |
INTEGER |
last_change_date |
Время последнего изменения |
SMALLDATETIME |
topic (таблица тем) |
||
id_topic |
Идентификатор темы |
INTEGER |
title |
Название темы |
NVARCHAR |
author |
Автор темы |
INTEGER |
rubric |
Рубрика, которой принадлежит тема |
INTEGER |
creation_date |
Дата создания темы |
SMALLDATETIME |
last_change_date |
Время последнего изменения |
SMALLDATETIME |
messages_num |
Кол-во сообщений в теме |
INTEGER |
message_info (таблица сообщений) |
||
id_message |
Идентификатор сообщения |
INTEGER |
src_user |
Пользователь, отправивший сообщение |
INTEGER |
message_date |
Дата отправки |
SMALLDATETIME |
message_text |
Текст сообщения |
NTEXT |
topic |
Тема, которой принадлежит сообщение |
INTEGER |
black_list (черный список ползователей) |
||
id_user |
Идентификатор пользователя |
INTEGER |
reason_text |
Причина блокирования |
NVARCHAR |
date_begin |
Дата блокирования |
SMALLDATETIME |
date_end |
Дата разблокировки |
SMALLDATETIME |
group_info (таблица групп) |
||
id_group |
Идентификатор группы |
INTEGER |
author |
Автор группы |
INTEGER |
group_date |
Дата создания группы |
SMALLDATETIME |
title |
Название группы |
NVARCHAR |
votes (таблица голосований) |
||
id_vote |
Идентификатор голосования |
INTEGER |
question |
Текст вопроса |
NVARCHAR |
author |
Автор |
INTEGER |
id_group |
Группа, в которой задается вопрос |
INTEGER |
date_begin |
Дата начала голосования |
SMALLDATETIME |
date_end |
Дата конца голосования |
SMALLDATETIME |
answers (таблиица ответов на голосования) |
||
id_answer |
Идентификатор ответа |
INTEGER |
vote |
Голосование, которому принадлежит ответ |
INTEGER |
ans_number |
Номер ответа |
TINYINT |
ans_text |
Текст ответа |
NVARCHAR |
quantity |
Кол-во данных ответов |
INTEGER |
user_group (таблица принадлежности пользователя группе) |
||
id_user |
Идентификатор пользователя |
INTEGER |
id_group |
Идентификатор группы |
INTEGER |
best_users (таблица лучших поьзователей) |
||
id_user |
Идентификатор пользователя |
INTEGER |
points |
Кол-во очков пользователя |
INTEGER |
choise_date |
Дата выбора |
SMALLDATETIME |