Saitistika 4.0.Руководство разработчика.2005
.pdfКлючевые сущности системы
В системе можно выделить следующие сущности предметной области:
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 |
- |
- |
|
|
? |
+ |
? |
? |
|
менеджера |
(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 |
|
|