Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Saitistika 4.0.Руководство разработчика.2005

.pdf
Скачиваний:
11
Добавлен:
23.08.2013
Размер:
3.22 Mб
Скачать

Ключевые сущности системы

В системе можно выделить следующие сущности предметной области:

1.Объект

2.Атрибут

3.Задача

4.Проект

5.Статус

6.Тип данных

7.Подтип данных

8.Пользователь

9.Роль

10.Группа пользователей

11.Сервер

12.Раздел

13.Тема

14.Шаблон

15.Материал

16.Файл

17.Сценарий

18.Связь

19.Узел

На диаграмме изображены взаимосвязи между базовыми сущностями. Базовые сущности обозначены в виде прямоугольников. Для каждой связи - ассоциации двух сущностей указаны дополнительные характеристики имя, кратность и т.д.

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

11 из 11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+На контроле

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0..*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0..*

 

+Задача

по проекту

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0..*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

1 1..*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0..1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0..*

 

 

 

 

 

 

 

 

 

+Исполнитель 0..

*

0..*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0..*

 

 

 

 

 

 

 

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*

 

+Участник

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0..*

 

0..* 1

 

 

 

 

 

0..*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

1

 

 

 

 

 

Права пользователя на материал

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0..*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Права пользователя на раздел

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

0..*

 

0..*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0..*

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0..*

0..*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Права группы на материал

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*

 

 

 

 

 

 

 

 

 

0....*

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0..*

 

 

 

 

 

 

 

 

 

1

Права группы на раздел

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 0..

*

 

 

 

 

 

 

 

 

0..5

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0..*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+Родитель

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 0..*

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

1

 

 

0..*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+Потомок

 

 

 

 

 

 

 

 

 

 

 

 

0..*

 

 

 

 

1

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

Рисунок 5. Базовые сущности системы Для получения дополнительной информации о назначении базовых сущностей см. Глоссарий

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

12 из 12

 

 

Объектная модель

Основные идеи и функции

Идея или функция

Значение и влияние

Унификация структур данных и кода

Облегчение процесса внедрения и сопровождения системы

Программист имеет возможность самостоятельно

Свобода действий

конструировать сложные структуры данных без

Снижение количества ошибок при проектировании и

необходимости внесения изменений в структуру таблиц БД

интеграции

Для каждого созданного типа данных в системе уже имеется

Сокращается время на реализацию новых сервисов,

базовый набор процедур и правил существования объектов.

работающих с новыми по структуре типами данных

Базовый набор может процедур и правил модифицироваться

 

для каждого типа данных

 

Единый набор конструируемых атрибутов для всех типов

Конвертация объектов «на лету» из одного подтипа данных в

данных

другой подтип этого же типа. Сильное упрощение

 

конвертации объектов в другой тип.

Возможность изменения СТРУКТУРЫ данных объектов «на

Не требуется адаптация программной логики, снижается

лету» прямо в бэкофисе

время на поддержку и возможные ошибки

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

Об использовании

Объектная модель внедрена в систему в версии 4.0. Для сохранения совместимости с предыдущими версиями большинство сущностей удовлетворяет требованиям объектной модели лишь в малой степени, для них не могут использоваться общие процедуры и наработки. Полностью удовлетворяют требованиям объектной модели сущности, появившиеся только в версии

4.0:

1.Задача

2.Проект

3.Файл

Основные сущности и связи между ними

0..* 0..*

1..1*..*

1

0..*

0..*

0..*

0..*

0..*

1

1..*

Рисунок 6. Базовые сущности Объектной модели.

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

13 из 13

 

 

Пояснения к диаграмме

Сущность

Роль сущности и ее связи с другими сущностями в

 

Объектной Модели

Тип данных

1.

Логическая группировка подтипов данных

 

2.

Определение таблиц, предназначенных для хранения

 

 

объектов.

 

3.

Определение предопределенных и расширенных

 

 

атрибутов для подтипов и объектов

Подтип данных

1.

Определение набора атрибутов

 

2.

Определение набора статусов, которые могут быть

 

 

присвоены объектам данного подтипа

 

3.

Определение набора сценариев, по которым могут

 

 

проходить объекты данного подтипа

Расширенный атрибут

Связан с типом, и соответственно, со всеми входящими в

 

него подтипами.

Конструируемый атрибут

Связан с подтипом.

Роль

Роль, совместимая с объектами данного типа

Статус

Статус, который может быть присвоен объектам данного

 

подтипа

Сценарий

Сценарий прохождения для объектов данного подтипа

Атрибуты

Атрибуты это «строительные блоки», на основе которых создаются типы и подтипы данных. Атрибуты бывают нескольких типов, в зависимости от их предназначения, физического хранения и обработки.

 

Тип атрибутов

 

Описание

Список или пример

 

 

Предопределенные

 

Существуют у каждого объекта. Не

ID

 

 

 

 

изменяется в результате развития

Type

 

 

 

 

системы и изменения структур

Name

 

 

 

 

объектов.

Description

 

 

 

 

 

Created

 

 

 

 

Для каждого типа данных основная

Changed

 

 

 

 

таблица объектов содержит этот

Deleted

 

 

 

 

минимальный набор физических полей

System

 

 

 

 

 

Active

 

 

 

 

 

Flags

 

 

 

 

 

Notes

 

 

 

 

 

Status

 

 

 

 

 

Owner

 

 

 

 

 

Ord

 

 

Расширенные

 

Существуют для каждого типа.

Пример:

 

 

 

 

 

Поле «Процесс» для типа «Задача». Все

 

 

 

Как правило, создаются сразу при

задачи существуют в рамках процессов,

 

 

 

создании нового типа данных, и в

но другие типы (например, «Проект»)

 

 

 

дальнейшем не изменяются.

не обязаны существовать в рамках

 

 

 

Определяют набор дополнительных

процессов

 

 

 

 

 

 

 

 

 

ФИЗИЧЕСКИХ полей для основной

 

 

 

 

 

таблицы объектов каждого типа, без

 

 

 

 

 

которых ВСЕ объекты этого типа не

 

 

 

 

 

могут существовать.

 

 

 

Конструируемые

 

Создаются пользователями в бэкофисе.

Пример:

 

 

 

 

Самый изменяемый набор атрибутов.

Поле «Договор» для подтипа

 

 

 

Один атрибут может использоваться в

«Внешние» типа «Проекты».

 

 

 

 

 

 

 

 

разных подтипах разных типов данных.

Для внешних проектов этот атрибут

 

 

 

Не порождают изменений в физической

актуален, а для внутренних не актуален.

 

 

 

структуре таблицы БД.

 

 

 

 

 

Мета-база и наборы значений для

 

 

 

 

 

объектов хранятся в специальных

 

 

 

 

 

таблицах, спроектированных для

 

 

 

 

 

хранения слабоструктурированных

 

 

 

 

 

 

 

 

 

 

Copyright © 2005 Individ company

 

Страница

 

 

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

14 из 14

данных:

1.<Usertype>Storage (оперативные данные)

2.<Usertype>StorageArchive (архивные данные)

Пример использования атрибутов для формирования структуры объектов

Атрибут

Описание и

 

Тип «Задача»

 

 

Тип «Проект»

Тип, созданный

 

назначение

 

 

 

 

 

пользователем

 

атрибута

 

Таблицы БД

 

 

Таблицы БД

Таблицы БД

 

 

 

Tasks

 

 

Projects

Utype1

 

 

 

 

TasksStorage

 

 

ProjectsStorage

Utype1Storage

 

 

 

TasksStorageArchive

 

ProjectsSto

Utype1Sto

 

 

 

 

TasksRights

 

 

rageArchive

rageArchive

 

 

 

 

 

 

ProjectsRights

Utype1Rights

 

 

 

Подтип

Подтип

Подтип,

Подтип «Внешний»

Подтип

 

Подтип

 

 

 

«Стандартная»

«Заметка»

созданный

 

1

 

2

 

 

 

 

 

пользователем

 

 

 

 

ID

Определяют

 

+

 

 

 

 

 

 

Type

минимальный

 

 

 

 

 

 

 

Name

набор данных

 

 

 

 

 

 

 

Description

для

 

 

 

 

 

 

 

Created

существования

 

 

 

 

 

 

 

Changed

объекта

 

 

 

 

 

 

 

Deleted

 

 

 

 

 

 

 

 

 

System

 

 

 

 

 

 

 

 

 

Active

 

 

 

 

 

 

 

 

 

Flags

 

 

 

 

 

 

 

 

 

Notes

 

 

 

 

 

 

 

 

 

Status

 

 

 

 

 

 

 

 

 

Owner

 

 

 

 

 

 

 

 

 

Ord

 

 

 

 

 

 

 

 

 

Содержание

Основной текст

+

+

+

-

?

?

 

объекта (Text)

 

 

 

 

 

 

Процесс

К какому

+

+*

+

-

?

?

 

процессу

 

 

 

 

 

 

 

относится (ID)

 

 

 

 

 

 

Workflow

В рамках какого

+

+*

+

-

?

?

 

сценария

 

 

 

 

 

 

 

существует (ID)

 

 

 

 

 

 

Узел

В каком узле

+

+*

+

-

?

?

Workflow

сценария

 

 

 

 

 

 

 

находится (ID)

 

 

 

 

 

 

Проект

К какому

+

+

+

-

?

?

 

проекту

 

 

 

 

 

 

 

относится (ID)

 

 

 

 

 

 

Приоритет

Указатель

+

+*

+

-

?

?

 

важности

 

 

 

 

 

 

 

объекта (Выбор

 

 

 

 

 

 

 

из списка)

 

 

 

 

 

 

Исполнитель

Кто работает с

+

+*

+

-

?

?

 

объектом (не

 

 

 

 

 

 

 

владелец

 

 

 

 

 

 

 

объекта) (ID)

 

 

 

 

 

 

Картинка

Графическое

+

-

?

+

?

?

 

пояснение к

 

 

 

 

 

 

 

объекту (IMG)

 

 

 

 

 

 

Веб-сайт

WWW-Ссылка

-

-

?

+

?

?

 

(TEXT/URL)

 

 

 

 

 

 

Договор

Присоединенный

-

-

?

+

?

?

 

файл

 

 

 

 

 

 

 

(FILE/LINK)

 

 

 

 

 

 

 

 

 

Copyright © 2005 Individ company

 

 

Страница

 

 

 

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

 

15 из 15

Контактные

Дополнительный

-

-

 

 

?

+

?

?

данные

текст

 

 

 

 

 

 

 

 

 

определенной

 

 

 

 

 

 

 

 

 

тематики (TEXT)

 

 

 

 

 

 

 

 

Схема

Картинка

-

-

 

 

?

+

?

?

проезда

определенной

 

 

 

 

 

 

 

 

 

тематики (IMG)

 

 

 

 

 

 

 

 

Email

Адрес Email

-

-

 

 

?

+

?

?

менеджера

(TEXT/EMAIL)

 

 

 

 

 

 

 

 

Атрибут 1,

Определяется

?

?

 

 

?

?

?

?

созданный

пользователем

 

 

 

 

 

 

 

 

пользователем

 

 

 

 

 

 

 

 

 

Атрибут 2,

Определяется

?

?

 

 

?

?

?

?

созданный

пользователем

 

 

 

 

 

 

 

 

пользователем

 

 

 

 

 

 

 

 

 

Пояснения к таблице

 

 

 

 

 

 

 

 

Обозначение

 

 

 

Пояснение

 

 

 

+

 

 

 

Используется в подтипе

 

 

+*

 

 

 

Физически существует и обрабатывается, но логически не

 

 

 

 

используется. В любой момент интерфейс представления

 

 

 

 

можно изменить, чтобы они использовались и логически

 

 

 

 

тоже.

 

 

 

-

 

 

 

Не используется в подтипе

 

 

?

 

 

 

Может использоваться на усмотрение администратора типов

 

 

 

 

данных

 

 

 

 

 

 

 

Атрибуты встроенного типа. Не могут быть изменены.

 

 

 

 

Атрибуты расширенного типа. Не могут быть изменены у

 

 

 

 

встроенных типов. Видно, что для всех задач везде

 

 

 

 

 

одинаковый знак «+», а для всех проектов одинаковый знак

 

 

 

 

«-»

 

 

 

 

 

 

 

 

Атрибуты конструируемого типа, входящие в поставку

 

 

 

 

системы. Пользователь может изменять их привязку к

 

 

 

 

подтипам данных.

 

 

 

 

 

 

 

Атрибуты конструируемого типа, созданные пользователем.

 

 

 

 

Пользователь имеет полную свободу по формированию

 

 

 

 

структуры подтипов данных и включению атрибутов в

 

 

 

 

подтипы данных

 

 

 

Описание объекта на примере

1.Тип «Задача»

2.Подтип «Стандартная»

Объект имеет следующую структуру:

 

Атрибут

 

Пример

 

 

ID

 

6976

 

 

Type

 

67 («Стандартная» задача)

 

 

Name

 

Процесс от 11.04.2003 11:35:48

 

 

Description

 

-

 

 

Created

 

12.04.2003 16:45:13

 

 

Changed

 

12.04.2003 16:45:13

 

 

Deleted

 

<NULL> (объект «живой»)

 

 

System

 

0 (не используется для специальных системных нужд)

 

Active

 

1 (не заблокирован к использованию)

 

 

Flags

 

0

 

 

Notes

 

<NULL>

 

 

Status

 

67 (Уведомить)

 

 

Owner

 

645 (Сидоров С.С. создал эту задачу)

 

 

ord

 

-

 

 

Содержание

 

Зарплата не выдана, работник находится на больничном

 

Процесс

 

6745 (Выдача зарплаты Иванову И.И.)

 

 

Workflow

 

Цепочка с уведомлением постановщика

 

 

 

 

 

 

 

 

Copyright © 2005 Individ company

Страница

 

 

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

16 из 16

Узел Workflow

Уведомление HR-менеджеру

Проект

Зарплата

Приоритет

Низкий

 

 

Исполнитель

Петров П.П.

 

 

Картинка

нет

 

 

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

17 из 17

 

 

База данных

Раздел описывает общие принципы, положения и рекомендации при работе с базой данных системы. Ознакомление с данным разделом обязательно для разработчика любого уровня.

Общие принципы

База данных единая на бэкофис и все фронтофисы. В ней хранятся все данные, за исключением больших и в общем случае двоичных данных (картинки, присоединяемые к статьям файлы и т.д.), которые по соображениям производительности хранятся в виде файлов (в базе хранятся пути до этих файлов). База данных также является ключевым звеном, объединяющим бэкофис и фронтофисы в единое целое.

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

Правила именования таблиц

Таблицы, относящиеся к одной функциональности должны иметь названия следующего вида: «НазваниеФункциональностиЧтоХранитсяВТаблице». Например, ForumModerators – перечислены все модераторы форумов.

Правила именования хранимых процедур

Правила именования хранимых процедур зависят от способа их использования.

Место использования

Формат

Назначение

Только ФО

Sait_НазваниеФункциональности_ДействиеОбъект

Относятся к конкретной

 

 

функциональности

 

Sait_Common_ ДействиеОбъект

Не относятся к конкретной

 

 

функциональности

 

 

(например, «получение

 

 

дерева»)

БО и ФО

НазваниеФункциональности_ДействиеОбъект

Общее правило

 

Can*

Проверка прав

 

data_*

Генерация файлов. Устарели,

 

fpp_*

новые процедуры таких

 

gen_*

типов не создаются.

 

usp_*

Оставлены для

 

service_*

совместимости со старыми

 

 

версиями системы.

 

Directories_*

Функции подсистемы

 

 

управления структурой

 

util_*

Утилиты. Не используют

 

 

табличные данные или

 

 

выполняют общие и простые

 

 

задачи

Внешние сервисы

Out_

Внешние сервисы.

 

 

Например, автоматическая

 

 

рассылка писем.

Не следует присваивать хранимым процедура имена вида GetForum1.

В разделе «Справочник хранимых процедур» приведен перечень и описание наиболее часто используемых хранимых процедур.

Настройка прав доступа

Владельцем таблиц и процедур в БД должен быть системный пользователь dbo. Права, установленные для таблиц, должны разрешать делать выборку (SELECT) пользователям public. При разработке хранимых процедур (stored procedures) необходимо разрешить исполнять их (EXEC) пользователям public.

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

18 из 18

 

 

Бэкофис

Раздел описывает общие принципы и положения работы бэкофиса системы. Ознакомление с данным разделом обязательно

для разработчика любого уровня.

Общие принципы

Как работает бэкофис

Работа системы сводится к обработке запросов к страницам. Веб-сервер (IIS) получает запрос по протоколу HTTP на

получение файла определенного типа. Действия сервера зависят от типа запрашиваемого файла:

Рисунок 7. Логика обработки запросов для бэкофиса

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

19 из 19

 

 

Логика обработки для разных типов данных

Тип файла

 

 

.asp

1.

IIS исполняет скрипт.

 

2.

Скрипт взаимодействует с БД (помещает/извлекает информацию, запускает хранимые

 

 

процедуры и т.д.) и в результате своей работы выдает XML документ.

 

3.

Окончательное преобразование в HTML осуществляется при помощи XSL-шаблона

 

 

«format.xsl», точно так же как при формировании оформления вывода MAE скриптов.

.mae

1.

IIS исполняет ISAPI-расширение «MAE Parser» (SaitistikaInterface.dll)

 

2.

MAE Parser исполняет запрашиваемый MAE-скрипт.

 

3.

Формирование структуры страницы осуществляется с помощью XSL-шаблона, который

 

 

читается из файла, имеющего такое же имя, что и файл с MAE-скриптом, но при этом

 

 

имеющим расширение «.xsl».

 

4.

Также в этот XSL-шаблон добавляются шаблоны элементов из файла «stl.xsl», что

 

 

позволяет реализовать библиотеку стилей структуры для распространенных элементов

 

 

страниц.

 

5.

Полученный XML-документ преобразуется в запись, принятую для HTML-документов и

 

 

передается в качестве ответа клиенту, приславшему запрос.

 

6.

Преобразование производится с помощью единственного XSL-шаблона, хранящегося в

 

 

файле «format.xsl». В этом шаблоне и определяется, как будут отображаться элементы

 

 

структуры страницы.

.gif, .jpg

1.

Если запрашиваемое изображение хранится в БД, то для его получения веб-сервер

 

 

запускает ISAPI-расширение PublishImage.dll. Эта библиотека подключается к БД,

 

 

достает оттуда нужный файл и отправляет его клиенту

 

2.

Если изображение является физическим файлом, то оно просто выдается средствами IIS.

все типы файлов из

1.

IIS исполняет ISAPI-расширение FileAccess.dll.

/common/data/pub/files/

2.

Расширение FileAccess.dll производит запрос информации о файле из базы данных

 

3.

Если информация о файле есть в базе данных, то FileAccess.dll использует ее для

 

 

определения доступности файла текущему пользователю Сайтистики, а также

 

 

возвращает пользователю указанный в базе данных тип содержимого. Если информации

 

 

о файле в базе данных нет, то доступность файла пользователю определяется только

 

 

файловой системой.

 

4.

Если файл физически существует и доступен по своим свойствам из базы данных, то

 

 

FileAccess.dll передает клиенту необходимые заголовки и содержимое файла, иначе

 

 

производится редирект на страницу соответствующей ошибки.

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

20 из 20