Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
записка (Анисимов А).doc
Скачиваний:
2
Добавлен:
17.04.2019
Размер:
1.29 Mб
Скачать

Описание базы данных

В данной системе используется объектно-ориентированная база данных Cache, поэтому все сущности БД описываются в виде классов, их свойств и методов. В следующих пунктах подробно описываются классы, отвечающие за хранение и обработку данных на сервере. Все эти классы объединены в один пакет SiteBuilder.Model.

Классы данных, как и любые другие классы, могут наследоваться друг от друга и содержать ссылки на другие классы. Производные наследуют все хранимые в БД свойства и методы базового класса, и, поэтому, они могут выступать в качестве полноценных объектов как базового, так и производного классов одновременно. Схема наследования в данной системе приведена на рис. 3.1 и 3.2. Стрелками обозначено направление наследования, от производного класса к базовому.

Рис. 3.1. Схема наследования от класса Image.

Рис. 3.2. Схема наследования от класса Page.

Класс Admin – администратор системы

Название

Вид

Тип данных

Назначение

Email

Свойство

%String

Электронный почтовый адрес

Login

Свойство

%String

Логин для входа в систему

Name

Свойство

%String

Ф.И.О.

Password

Свойство

%String

Пароль для входа в систему

Login()

Метод

Загружает данные администратора по его логину и паролю

Login

Запрос

Осуществляет выборку из БД по логину и паролю

Класс Client – пользователь системы

Название

Вид

Тип данных

Назначение

Address

Свойство

%String

Адрес клиента

ConfirmationTime

Свойство

%TimeStamp

Время потверждения регистрации

Confirmed

Свойство

%Boolean

Флаг потверждения регистрации

Email

Свойство

%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

Время отправки сообщения

Email

Свойство

%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. Схема функционирования системы для пользователя.