- •Новосибирского государственного университета
- •Информатики высший колледж
- •Кафедра информатики
- •Разработка автоматизированной системы создания динамических web-сайтов
- •Дипломный проект на квалификацию
- •Новосибирск
- •Оглавление
- •Введение
- •Постановка задачи, описание предметной области
- •Описание базы данных
- •Руководство пользователя
- •Заключение
- •Список используемой литературы
Описание базы данных
В данной системе используется объектно-ориентированная база данных Cache, поэтому все сущности БД описываются в виде классов, их свойств и методов. В следующих пунктах подробно описываются классы, отвечающие за хранение и обработку данных на сервере. Все эти классы объединены в один пакет SiteBuilder.Model.
Классы данных, как и любые другие классы, могут наследоваться друг от друга и содержать ссылки на другие классы. Производные наследуют все хранимые в БД свойства и методы базового класса, и, поэтому, они могут выступать в качестве полноценных объектов как базового, так и производного классов одновременно. Схема наследования в данной системе приведена на рис. 3.1 и 3.2. Стрелками обозначено направление наследования, от производного класса к базовому.
Рис. 3.1. Схема наследования от класса Image.
Рис. 3.2. Схема наследования от класса Page.
Класс Admin – администратор системы
Название |
Вид |
Тип данных |
Назначение |
Свойство |
%String |
Электронный почтовый адрес |
|
Login |
Свойство |
%String |
Логин для входа в систему |
Name |
Свойство |
%String |
Ф.И.О. |
Password |
Свойство |
%String |
Пароль для входа в систему |
Login() |
Метод |
|
Загружает данные администратора по его логину и паролю |
Login |
Запрос |
|
Осуществляет выборку из БД по логину и паролю |
Класс Client – пользователь системы
Название |
Вид |
Тип данных |
Назначение |
Address |
Свойство |
%String |
Адрес клиента |
ConfirmationTime |
Свойство |
%TimeStamp |
Время потверждения регистрации |
Confirmed |
Свойство |
%Boolean |
Флаг потверждения регистрации |
Свойство |
%String |
Электронный почтовый адрес |
|
Login |
Свойство |
%String |
Логин для входа в систему |
Name |
Свойство |
%String |
Ф.И.О. |
Password |
Свойство |
%String |
Пароль для входа в систему |
Phone |
Свойство |
%String |
Номер телефона |
RegistrationTime |
Свойство |
%TimeStamp |
Время регистрации |
Sites |
Отношение |
Site |
Сайты клиента (один) |
%OnNew() |
Метод |
|
Инициализация данных нового объекта (записи) |
Login() |
Метод |
|
Загружает данные клиента, используя логин и пароль |
ByLogin() |
Метод |
|
Возвращает пользователя по его логину |
All() |
Метод |
|
Возвращает всех пользователей системы |
Confirm() |
Метод |
|
Функция подтверждения регистрации |
GetRegistrationTime() |
Метод |
|
Возвращает время регистрации |
GetConfirmationTime() |
Метод |
|
Возвращает время подтверждения регистрации |
GetSite() |
Метод |
|
Возвращает сайт пользователя |
Login |
Запрос |
|
Осуществляет выборку по логину и паролю |
ByLogin |
Запрос |
|
Осуществляет выборку по логину |
All |
Запрос |
|
Возвращает выборку всех записей |
Класс CustomizableForm – форма с данными
Название |
Вид |
Тип данных |
Назначение |
Fields |
Отношение |
CustomizableFormField |
Поля формы |
Title |
Свойство |
%String |
Заголовок |
Process() |
Метод |
|
Заполняет шаблон страницы данными |
ProcessRequest() |
Метод |
|
Посылает результаты заполнения формы на E-mail адрес клиента |
Класс CustomizableFormField – поля формы с данными
Название |
Вид |
Тип данных |
Назначение |
Form |
Отношение |
CustomizableForm |
Ссылка на форму |
Mandatory |
Свойство |
%Boolean |
Флаг для обязательного заполнения |
Name |
Свойство |
%String |
Название поля |
Options |
Свойство |
%String |
Опции (варианты) |
Type |
Свойство |
%String |
Тип поля |
Класс ExternalLink – внешняя ссылка
Название |
Вид |
Тип данных |
Назначение |
Blank |
Свойство |
%String |
Флаг открытия ссылки в новом окне |
Href |
Свойство |
%String |
URL ссылки |
Класс GuestBook – гостевая книга
Название |
Вид |
Тип данных |
Назначение |
Header |
Свойство |
%String |
Заголовок гостевой книги |
Posts |
Отношение |
GuestBookPost |
Сообщения |
GetPosts() |
Метод |
|
Возвращает все сообщения для гостевой книги, упорядоченные по времени |
ProcessRequest() |
Метод |
|
Обрабатывает запрос, добавляет новое сообщение |
Process() |
Метод |
|
Заполняет страницу гостевой книги данными |
Класс GuestBookPost – сообщение гостевой книги
Название |
Вид |
Тип данных |
Назначение |
Comments |
Свойство |
%String |
Текст сообщения |
PostTime |
Свойство |
%TimeStamp |
Время отправки сообщения |
Свойство |
%String |
E-mail адрес отправителя |
|
GuestBook |
Отношение |
GuestBook |
Ссылка на гостевую книгу |
Href |
Свойство |
%String |
URL web-сайта отправителя |
Name |
Свойство |
%String |
Ф.И.О. отправителя |
New |
Свойство |
%Bolean |
Флаг нового сообщения |
%OnNew() |
Метод |
|
Инициализирует новое сообщение |
GetPostTime() |
Метод |
|
Возвращает время отправки сообщения |
Класс Image –изображение
Название |
Вид |
Тип данных |
Назначение |
Height |
Свойство |
%Integer |
Высота изображения (в пикселях) |
Name |
Свойство |
%String |
Название |
Source |
Свойство |
%String |
Путь к файлу (относительный) |
Width |
Свойство |
%Integer |
Ширина изображения (в пикселях) |
DeleteFile() |
Метод |
|
Удаляет изображение из БД и из файловой системы |
Upload() |
Метод |
|
Закачивает изображение с клиента на сервер (через протокол HTTP) |
GetSize() |
Метод |
|
Определяет размер изображения |
CreateThumbnail() |
Метод |
|
Создаёт уменьшенную копию изображения |
Resize() |
Метод |
|
Пропорционально изменяет размер изображения |
%OnDelete() |
Метод |
|
Осуществляет физическое удаление файла изображения при удалении данных |
Класс Logo – логотип сайта
Название |
Вид |
Тип данных |
Назначение |
Color |
Свойство |
TemplateColor |
Цвет логотипа |
Site |
Отношение |
Site |
Ссылка на сайт |
Default() |
Метод |
|
Возвращает логотип по умолчанию |
Current() |
Метод |
|
Возвращает текущий логотип для сайта |
ForSite() |
Метод |
|
Возвращает либо текущий логотип, если он определён, либо логотип по умолчанию |
Класс NewsItem – новости
Название |
Вид |
Тип данных |
Назначение |
Content |
Свойство |
%String |
Содержимое новости |
CreateDate |
Свойство |
%Date |
Дата создания |
Description |
Свойство |
%String |
Описание |
Site |
Отношение |
Site |
Ссылка на сайт |
Title |
Свойство |
%String |
Заголовок |
%OnNew() |
Метод |
|
Инициализирует новую запись |
GetDate() |
Метод |
|
Возвращает дату создания |
Класс Page – страница сайта
Название |
Вид |
Тип данных |
Назначение |
Name |
Свойство |
%String |
Название страницы |
Site |
Отношение |
Site |
Ссылка на сайт |
Weight |
Свойство |
%Integer |
Порядковый номер |
Type |
Свойство |
PageType |
Тип страницы |
Process() |
Метод |
|
Абстрактный метод наполнения шаблона страницы данными |
ProcessRequest() |
Метод |
|
Абстрактный метод обработки запроса к странице |
Класс PageType – тип страницы
Название |
Вид |
Тип данных |
Назначение |
Name |
Свойство |
%String |
Название типа |
PageClass |
Свойство |
%String |
Название соответствующего класса страницы |
All() |
Метод |
|
Возвращает список всех типов |
All |
Запрос |
|
Осуществляет выборку всех типов из БД |
Класс Photo – фотография
Название |
Вид |
Тип данных |
Назначение |
CreateTime |
Свойство |
%TimeStamp |
Дата создания фотографии |
Description |
Свойство |
%String |
Описание |
PhotoAlbum |
Отношение |
PhotoAlbum |
Ссылка на фотоальбом |
Thumbnail |
Свойство |
Image |
Изображение |
%OnNew() |
Метод |
|
Инициирует данные новой фотографии |
GetCreateTime() |
Метод |
|
Возвращает время создания фотографии |
Класс PhotoAlbum – фотоальбом
Название |
Вид |
Тип данных |
Назначение |
Footer |
Свойство |
%String |
Нижний текст страницы фотоальбома |
Header |
Свойство |
%String |
Верхний текст страницы фотоальбома |
Photos |
Отношение |
Photo |
Фотографии |
Process() |
Метод |
|
Заполняет страницу фотоальбома данными |
Delete() |
Метод |
|
Удаляет фотоальбом и все фотографии |
Класс Publication – запрос на публикацию
Название |
Вид |
Тип данных |
Назначение |
Status |
Свойство |
%String |
Статус запроса (в процессе, одобрен, отклонён) |
Comments |
Свойство |
%String |
Комментарии к запросу |
CreationDate |
Свойство |
%TimeStamp |
Дата и время запроса |
ResponseDate |
Свойство |
%TimeStamp |
Дата и время ответа |
RespnoseComments |
Свойство |
%String |
Комментарии к ответу |
Site |
Отношение |
Site |
Ссылка на сайт |
%OnNew() |
Метод |
|
Инициирует данные нового запроса |
Approve() |
Метод |
|
Метод для одобрения публикации |
Deny() |
Метод |
|
Метод для отклонения публикации |
GetCreationDate() |
Метод |
|
Возвращает дату запроса |
GetResponseDate() |
Метод |
|
Возвращает дату ответа |
All() |
Метод |
|
Возвращает список всех запросов на публикацию |
All |
Запрос |
|
Производит выборку всех запросов на публикацию |
Класс Site – сайт
Название |
Вид |
Тип данных |
Назначение |
Owner |
Отношение |
Client |
Ссылка на владельца сайта (клиента) |
CreateDate |
Свойство |
%Date |
Дата создания |
ModifyDate |
Свойство |
%Date |
Дата последней модификации |
Complete |
Свойство |
%Boolean |
Флаг готовности к публикации |
Customization |
Свойство |
TemplateCustomization |
Настройки шаблона |
NewsItems |
Отношение |
NewsItem |
Новости |
Published |
Свойство |
%Boolean |
Флаг публикации |
Pages |
Отношение |
Page |
Страницы |
Publications |
Отношение |
Publication |
Запросы на публикацию |
Status |
Свойство |
%String |
Статус (создан, в процессе публикации, опубликован, отклонён) |
Title |
Свойство |
%String |
Заголовок |
%OnBeforeSave() |
Метод |
|
Устанавливает дату модификации на текущую |
%OnNew() |
Метод |
|
Инициализирует данные нового сайта |
GetCreateDate() |
Метод |
|
Возвращает дату создания |
GetModifyDate() |
Метод |
|
Возвращает дату последней модификации |
GetPages() |
Метод |
|
Возвращает список страниц, сортированный по порядковым номерам |
GetNews() |
Метод |
|
Возвращает список новостей, сортированный по дате |
Publish() |
Метод |
|
Публикует сайт |
GetLastPublication() |
Метод |
|
Возвращает последний запрос на публикацию |
Template |
Отношение |
Template |
Ссылка на шаблон дизайна |
Класс Template – шаблон дизайна
Название |
Вид |
Тип данных |
Назначение |
Category |
Отношение |
TemplateCategory |
Ссылка на объект категории дизайна |
Colors |
Отношение |
TemplateColor |
Цвета шаблона |
Customizations |
Отношение |
TemplateCustomization |
Возможные настройки шаблона |
Name |
Свойство |
%String |
Название |
ImageSections |
Отношение |
TemplateImageSection |
Секции изображений |
Sites |
Отношение |
Site |
Сайты с данным шаблоном дизайна |
Thumbnail |
Свойство |
Image |
Уменьшенное изображение шаблона |
ByCategory() |
Метод |
|
Возвращает все шаблоны в категории |
All() |
Метод |
|
Возвращает все шаблоны |
ByCategory |
Запрос |
|
Осуществляет выборку шаблонов по категории |
Класс TemplateCategory – категория дизайна
Название |
Вид |
Тип данных |
Назначение |
Name |
Свойство |
%String |
Название категории |
Templates |
Отношение |
Template |
Шаблоны в категории |
All() |
Метод |
|
Возвращает список всех категорий |
All |
Запрос |
|
Производит выборку всех категории, сортируя по названию |
Класс TemplateColor – цвет шаблона
Название |
Вид |
Тип данных |
Назначение |
Images |
Отношение |
TemplateImage |
Изображения в шаблоне, соответствующие данной цветовой схеме |
Hex |
Свойство |
%String |
Шестнадцатеричное представление цвета |
Template |
Отношение |
Template |
Ссылка на шаблон |
Класс TemplateCustomization – настройка шаблона
Название |
Вид |
Тип данных |
Назначение |
Params |
Ссылка |
TemplateCustomizationParam |
Набор параметров настройки |
Screenshot |
Свойство |
Image |
Уменьшенное изображение шаблона с данной настройкой |
Template |
Ссылка |
Template |
Ссылка на шаблон |
GetColor() |
Метод |
|
Возвращает цвет, соответствующий настройке |
GetImage() |
Метод |
|
Возвращает изображение в шаблоне, соответствующее данной настройке |
Класс TemplateCustomizationParam – параметры настройки
Название |
Вид |
Тип данных |
Назначение |
Customization |
Отношение |
TemplateCustomization |
Ссылка на объект настройки |
KeyId |
Свойство |
%Integer |
Идентификатор секции изображений либо 0 для параметра цвета. |
ValueId |
Свойство |
%Integer |
Идентификатор соответствующего изображения либо цвета |
Класс TemplateImage – изображения в шаблоне
Название |
Вид |
Тип данных |
Назначение |
Color |
Отношение |
TemplateColor |
Ссылка на цвет изображения |
ImageSection |
Отношение |
TemplateImageSection |
Ссылка на секцию изображений |
Класс TemplateImageSection – секция изображений шаблона
Название |
Вид |
Тип данных |
Назначение |
Images |
Отношение |
TemplateImage |
Изображения из данной секции |
Name |
Свойство |
%String |
Название секции |
Template |
Отношение |
Template |
Ссылка на шаблон |
GetImages() |
Метод |
|
Возвращает список изображений из данной секции по цвету |
Класс TextPage – текстовая страница
Название |
Вид |
Тип данных |
Назначение |
Text |
Свойство |
%String |
Текст страницы |
Process() |
Метод |
|
Заполняет содержимое текстовой страницы |
Класс WelcomePage – главная страница
Название |
Вид |
Тип данных |
Назначение |
Footer |
Свойство |
%String |
Верхняя часть страницы |
Header |
Свойство |
%String |
Нижняя часть страницы |
Process() |
Метод |
|
Заполняет главную страницу содержимым |
СХЕМА ФУНКЦИОНИРОВАНИЯ
Схема функционирования системы для пользователей изображена на рис. 4.1.
Рис 4.1. Схема функционирования системы для пользователя.