- •Оглавление
- •Обзор и анализ предметной области по курсового проекта
- •Проектирование серверной части по
- •Выбор субд
- •Выделение сущностей и атрибутов из предметной области
- •Выделение связей между сущностями
- •Построение er-диаграммы
- •Описание таблиц и полей
- •Построение физической модели бд
- •Описание хранимых процедур и триггеров
- •Проектирование клиентской части
- •Архитектура по
- •Выбор инструментальных средств
- •Функциональная схема по
- •Описание классов по
- •Классы уровня доступа к данным
- •Классы-контроллеры
- •Классы представления
- •Классы сервисов
- •Вспомогательные классы
- •Интерфейс по
-
Проектирование серверной части по
-
Выбор субд
Для реализации курсового проекта была выбрана СУБД MS SQL Server 2008 R2. Эта база данных обладает рядом преимуществом, среди них наиболее важным является «родная» поддержка .NET Framework, с использованием которого написано веб-приложение.
-
Выделение сущностей и атрибутов из предметной области
В результате анализа предметной области были выделены следующие сущности и их атрибуты:
-
Проект
-
Заказчик
-
Менеджер проекта
-
Статус
-
Задачи
-
Дата старта
-
Дата окончания
-
-
Задача
-
Описание
-
Ответственный разработчик
-
Предварительная оценка времени
-
Затраченное время
-
Статус
-
Дата создания
-
-
Пользователь
-
Имя
-
Пароль
-
Адрес эл.почты
-
Роль
-
Статус
-
-
Роль
-
Название роли
-
Описание роли
-
-
Выделение связей между сущностями
По результатам анализа предметной области было установлено, что в БД будут существовать следующие связи:
-
1:n
-
Роль – пользователи
-
Пользователь – задачи (для программиста)
-
Пользователь – проекты (проекты клиента)
-
Проект – задачи
-
-
1:1
Связей нет
-
m:n
-
Проекты – программисты (команда проекта)
-
-
Построение er-диаграммы
ER-диаграмма представляет собой концептуальную модель отношений сущностей без учета их атрибутов в базе данных.

Рис. 1 ER-диаграмма предметной области
-
Описание таблиц и полей
Таблица “Projects” – хранит информацию обо всех проектах в системе.
Таблица 1. Описание полей таблицы "Projects"
|
Название поля |
Тип |
Ограничения |
Примечания |
|
Id |
Int |
PK |
Номер проекта |
|
Name |
nvarchar(255) |
|
Название |
|
TotalCost |
money |
|
Общая стоимость |
|
PriceDiscount |
int |
|
К-ф скидки |
|
Progress |
float |
|
Прогресс хода работ |
|
CreationDate |
datetime |
|
Дата создания |
|
StartDate |
datetime |
|
Дата начала работ |
|
DeliveryDate |
datetime |
|
Дата доставки |
|
Status_Id |
int |
FK – “ProjectStatus” |
Код статуса проекта |
|
Customer_Id |
int |
FK – “Users” |
Код заказчика проекта |
Таблица "Users" – хранит информацию о пользователях системы, их ролях, и дополнительной информации.
Таблица 2. Описание полей таблицы "Users"
|
Название поля |
Тип |
Ограничения |
Примечания |
|
Id |
int |
PK |
Номер пользователя |
|
UserName |
nvarchar(50) |
|
Имя учетной записи |
|
Hash |
nvarchar(100) |
|
Хеш пароля |
|
|
nvarchar(100) |
|
Электронный адрес |
|
HouseRate |
float |
|
Ставка почасовой оплаты |
|
Role_Id |
int |
FK – “Roles” |
Код роли пользователя |
Таблица “Roles” – хранит информацию о пользовательских ролях в системе.
Таблица 3. Описание полей таблицы "Roles"
|
Название поля |
Тип |
Ограничения |
Примечания |
|
Id |
int |
PK |
Номер роли |
|
Name |
nvarchar(30) |
|
Название |
|
Description |
nvarchar(255) |
|
Описание |
|
IsBaseRole |
bit |
|
Флаг «Системная роль» |
|
BaseLocation |
nvarchar(100) |
|
Базовый адрес |
Таблица “ProjectStatuses” – хранит информацию о статусах проектов в системе.
Таблица 4. Описание полей таблицы "PojectStatuses"
|
Название поля |
Тип |
Ограничения |
Примечания |
|
Id |
int |
PK |
Номер статуса |
|
Name |
nvarchar(30) |
|
Название |
|
IsBaseStatus |
bit |
|
Флаг «Системный статус» |
Таблица “Tasks” – хранит информацию о проектных заданиях в системе.
Таблица 5. Описание полей таблицы "Tasks"
|
Название поля |
Тип |
Ограничения |
Примечания |
|
Id |
int |
PK |
Номер |
|
Title |
nvarchar(MAX) |
|
Название |
|
Description |
nvarchar(MAX) |
|
Описание |
|
CreationDate |
datetime |
|
Дата создания |
|
BeginDate |
datetime |
|
Дата начала |
|
EndDate |
datetime |
|
Дата завершения |
|
EstimatedTime |
datetime |
|
Оцененное время |
|
SpentTime |
int |
|
Затраченное время |
|
Status_Id |
int |
FK – “ProjectStatuses” |
Код статуса |
|
Project_Id |
int |
FK – “Projects” |
Код проекта |
|
Responsible_Id |
int |
FK – “Users” |
Код разработчика |
