![](/user_photo/2706_HbeT2.jpg)
- •Сравнительный анализ характеристик сайт-афишь по бронированию билетов на киносеансы
- •Архитектура системы
- •Архитектура
- •Требования к программным средствам серверов
- •Структура данных
- •Подробное описание базы данных
- •Модульная структура
- •Описание модулей системы
- •Группы пользователей
- •Бизнес-логика системы
- •Описание бизнес-процессов
- •Пользовательский интерфейс
- •Интерфейсы модулей системы модуль «авторизация»
- •Модуль «мои настройки»
- •Раздел «фильмы»
- •Раздел «новости»
- •Модуль «приобретение билетов»
- •Модуль «форум»
- •Модуль «администратор»
- •Фильмы, Кинотеатры, Новости
- •Пользователи
Структура данных
В данном проекте используется реляционная база данных со следующими сущностями и связями (рис. ):
Рис. ER-модель базы данных
Подробное описание базы данных
Типы данных приведены в соответствие с типами данных MS SQL Server.
1. Таблица Users (пользователи) — содержит информацию о пользователях системы и их личных настройках оповещения о различных событиях.
Users |
|||||
Поле |
Обязательность |
Ключ |
Тип данных |
Комментарий |
Значение |
UserID |
да |
Первичный |
int |
Уникальный идентификатор пользователя |
|
Login |
да |
нет |
nvarchar(20) |
Имя пользователя |
|
Password |
да |
нет |
nvarchar(20) |
Пароль пользователя |
|
FirstName |
нет |
нет |
nvarchar(20) |
Имя пользователя |
|
LastName |
нет |
нет |
nvarchar(20) |
Фамилия пользователя |
|
MiddleName |
нет |
нет |
nvarchar(20) |
Отчество пользователя |
|
Status |
да |
нет |
varchar(1) |
Статус пользователя |
A-администратор, U-пользователь |
да |
нет |
nvarchar(40) |
Адрес электронной почты пользователя |
|
|
Phone |
да |
нет |
nvarchar(15) |
Телефонный номер пользователя |
|
NLatest |
да |
нет |
tinyint |
Оповещать ли о последних событиях |
0-не оповещать, 1-оповещать |
NShow |
да |
нет |
tinyint |
Оповещать ли о предстоящих сеансах, на которые приобретены билеты |
0-не оповещать, 1-оповещать |
NTime |
да |
нет |
tinyint |
Время до начала сеанса, за которое оповещать пользователя |
0-не оповещать, 1-оповещать |
NAction |
да |
нет |
tinyint |
Оповещать ли об акциях и мероприятиях |
0-не оповещать, 1-оповещать |
Image |
нет |
нет |
image |
Изображение-аватар пользователя |
|
2. Таблица News (новости) — хранит все новости (тема, содержимое) и их служебную информацию (ссылки на мультимедиа файлы, дату создания).
News |
|||||
Поле |
Обязательность |
Ключ |
Тип данных |
Комментарий |
Значение |
NewsID |
да |
Первичный |
int |
Уникальный идентификатор новости |
|
Subject |
да |
нет |
nvarchar(40) |
Тема новости |
|
Text |
да |
нет |
Ntext |
Текст новости |
|
Date |
да |
нет |
datetime |
Дата и время опубликования новости |
|
Rating |
да |
нет |
tinyint |
Рейтинг новости |
|
Image |
да |
нет |
image |
Изображение к новости |
|
Video |
нет |
нет |
nvarchar(100) |
URL-ссылка на файл, хранящийся на сервере |
|
3. Таблица Films (фильмы) — хранит данные о фильмах (название, описание) и их служебную информацию (ссылки на мультимедиа файлы, рейтинг).
Films |
|||||
Поле |
Обязательность |
Ключ |
Тип данных |
Комментарий |
Значение |
FilmID |
да |
Первичный |
int |
Уникальный идентификатор фильма |
|
Name |
да |
нет |
nvarchar(40) |
Название фильма |
|
Text |
да |
нет |
Ntext |
Описание фильма |
|
Rating |
да |
нет |
tinyint |
Рейтинг фильма |
|
Image |
да |
нет |
image |
Изображение к фильму |
|
Video |
нет |
нет |
nvarchar(100) |
URL-ссылка на файл, хранящийся на сервере |
|
4. Таблица Cinema (кинотеатры) — хранит данные о кинотеатрах (название, описание) и их служебную информацию (ссылки на мультимедиа файлы, рейтинг, контактную информацию).
Cinema |
|||||
Поле |
Обязательность |
Ключ |
Тип данных |
Комментарий |
Значение |
NewsID |
да |
Первичный |
int |
Уникальный идентификатор кинотеатра |
|
Name |
да |
нет |
nvarchar(40) |
Название кинотеатра |
|
Address |
да |
нет |
ntext |
Адрес кинотеатра |
|
Contact |
да |
нет |
ntext |
Контактная информация — телефоны и пр. |
|
Rating |
да |
нет |
tinyint |
Рейтинг новости |
|
Image |
да |
нет |
image |
Изображение кинотеатра |
|
Video |
нет |
нет |
nvarchar(100) |
URL-ссылка на файл, хранящийся на сервере |
|
5. Таблица Comments (комментарии) — содержит комментарии пользователей.
Comments |
|||||
Поле |
Обязательность |
Ключ |
Тип данных |
Комментарий |
Значение |
CommentID |
да |
Первичный |
int |
Уникальный идентификатор пользователя |
|
FK_FilmID |
да |
Внешний: Films.FilmID |
int |
ID фильма, на который сделан комментарий |
|
FK_NewsID |
да |
Внешний: News.NewsID |
int |
ID новости, на которую сделан комментарий |
|
FK_CinemaID |
да |
Внешний: Cinema.CinemaID |
int |
ID кинотеатра, на который сделан комментарий |
|
Text |
да |
нет |
ntext |
Текст комментария |
|
FK_ChildTo |
да |
Внешний: Comments.CommentID |
int |
ID родительского комментария |
|
Level |
да |
нет |
tinyint |
Уровень комментария |
|
Like |
да |
нет |
smallint |
Оценка комментария пользователями |
|
6. Таблица Sessions (сеансы) — содержит информацию обо всех сеансах, проходящих во всех кинотеатрах.
Sessions |
|||||
Поле |
Обязательность |
Ключ |
Тип данных |
Комментарий |
Значение |
SessionID |
да |
Первичный |
int |
Уникальный идентификатор сеанса |
|
FK_FilmID |
да |
Внешний: Films.FilmsID |
int |
ID фильма для сеанса |
|
FK_HallID |
да |
Внешний: Halls.HallID |
int |
ID зала кинотеатра для сеанса |
|
Time |
да |
нет |
time |
Время показа |
|
Date |
да |
нет |
date |
Дата показа |
|
7. Таблица Halls (кинозалы) — содержит информацию о количестве мест в кинозалах.
Halls |
|||||
Поле |
Обязательность |
Ключ |
Тип данных |
Комментарий |
Значение |
HallID |
да |
Первичный |
int |
Уникальный идентификатор кинозала |
|
FK_CinemaID |
да |
Внешний: Cinema.CinemaID |
int |
ID кинотеатра, в котором расположен кинозал |
|
Name |
да |
нет |
nvarchar(20) |
Название кинозала |
|
8. Таблица Tickets (билеты) — хранит информацию обо всех билетах на все существующие сеансы.
Tickets |
|||||
Поле |
Обязательность |
Ключ |
Тип данных |
Комментарий |
Значение |
TicketID |
да |
первичный |
int |
Уникальный идентификатор билета |
|
FK_SessionID |
да |
Внешний: Sessions.SessionID |
int |
ID сеанса, на который предоставлен билет |
|
FK_StatusID |
да |
Внешний: TicketStatuses.StatusID |
int |
ID статуса билета |
|
Cost |
да |
нет |
decimal |
Цена билета |
|
FK_UserID |
нет |
Внешний: Users.UserID |
int |
ID пользователя, который приобрел билет |
|
9. Таблица Images (изображения) — содержит ссылки на все изображения к материалам ресурса.
Images |
|||||
Поле |
Обязательность |
Ключ |
Тип данных |
Комментарий |
Значение |
ImageID |
да |
первичный |
int |
Уникальный идентификатор изображения |
|
FK_FilmID |
да |
Внешний: Films.FilmID |
int |
ID фильма, на который сделан комментарий |
|
FK_NewsID |
да |
Внешний: News.NewsID |
int |
ID новости, на которую сделан комментарий |
|
FK_CinemaID |
да |
Внешний: Cinema.CinemaID |
int |
ID кинотеатра, на который сделан комментарий |
|
Link |
да |
нет |
nvarchar(100) |
URL-ссылка на файл, хранящийся на сервере |
|
10. Таблица Voted (проголосовавшие) — хранит данные о голосовавших в каких-либо разделах пользователях.
Voted |
|||||
Поле |
Обязательность |
Ключ |
Тип данных |
Комментарий |
Значение |
VoteID |
да |
первичный |
int |
Уникальный идентификатор голосования |
|
VoteType |
да |
нет |
int |
Тип голосования |
0 – отрицательно, 1 - положительно |
FK_CinemaID |
нет |
Внешний: Cinema.CinemaID |
int |
ID кинотеатра, за который отдан голос |
|
FK_FilmID |
нет |
Внешний: Films.FilmID |
int |
ID фильма, за который отдан голос |
|
FK_NewsID |
нет |
Внешний: News.NewsID |
int |
ID новости, за которую отдан голос |
|
FK_UserID |
да |
Внешний: Users.UserID |
int |
ID пользователя, отдавшего голос |
|
11. Таблица Rows (ряды кинозалов) — хранит информацию о количестве мест в каждом ряду кинозала.
Rows |
|||||
Поле |
Обязательность |
Ключ |
Тип данных |
Комментарий |
Значение |
RowID |
да |
первичный |
int |
Уникальный идентификатор ряда |
|
SeatsCount |
да |
нет |
int |
Количество мест в ряду |
|
FK_HallID |
да |
Внешний: Halls.HallID |
int |
ID кинозала, в котором находится ряд |
|
12. Таблица TicketStatuses (статусы билетов) — хранит названия статусов билетов (например: «приобретен», «свободен», «забронирован»).
TicketStatuses |
|||||
Поле |
Обязательность |
Ключ |
Тип данных |
Комментарий |
Значение |
StatusID |
да |
Первичный |
int |
Уникальный идентификатор статуса |
|
StatusName |
да |
нет |
nvarchar(40) |
Наименование статуса |
|