Проектирование базы данных Книги клиентов и услуг на юридическом портале
Содержание:
Введение
Актуальность данной темы заключается в том, что обычно данные хранятся в бумажном виде, возникает проблема поиска информации по клиентам, невозможность предоставления нотариальных и юридических услуг удаленно. Создание электронной Базы Данных (далее БД) позволяет экономить время при поиске информации о клиенте, возможность охватить большее число клиентов как из своего города, так и из других городов при этом не теряя время на дорогу.
Предметом данной работы выступает созданная БД. Главными объектами моей темы есть обеспечение юридическими услугами всех желающих, а также сбор информации по всем клиентам компании ТОО «ИнтерПраво» и историю представляемых услуг.
Цель и задачи работы. Целью курсовой работы является создание БД для сбора информации в едином источнике по клиентам компании ТОО «ИнтерПраво» и истории и анализа предоставленных услуг организацией.
В данной курсовой работе был использован метод концептуального моделирования, который заключается в замещении реального объекта другим, специально для этого созданным и в использовании модели как средства исследования. Данная БД может использоваться в любых юридических организациях или нотариальных конторах, как главная или второстепенная для автоматизации процесса учета предоставляемых услуг организацией.
БД планировалась для организации производства, хранения отчетности, регистрации новых клиентов. БД разработана в программной среде MySQL и может взаимодействовать, при необходимости, с другими базами данных.
1. Аналитическая часть
1.1 Описание предметной области. Постановка задачи
Юридические фирмы могут осуществлять свою деятельность в различных организационно-правовых формах, которые определяются законодательством страны, на территории которой создается соответствующая фирма.
Например, существуют юридические фирмы, созданные в форме товариществ, обществ с ограниченной ответственностью, акционерных обществ.
В законодательстве отдельных стран могут быть предусмотрены специальные организационно-правовые формы для осуществления деятельности организаций, оказывающих квалифицированную юридическую помощь. Такие организации тоже могут быть отнесены к категории «юридическая фирма».
Основой для создания базы данных для фирмы стала необходимость каким-то образом сгруппировать всю информацию, которая производится в результате разнородной деятельности нотариусов и юристов в компании. В конечном этапе запроектирована БД позволит просматривать информацию о клиентах, удобно и быстро планировать работу по оказанию юридических услуг, вести предварительную запись клиентов по расписанию работы специалистов, оперативно оказывать юридические услуги напрямую специалисту и начислить ему заработную плату, идентифицировать клиента и работника, продажа юридических услуг; проводить различные типы оплат, наличными, банковской картой, анализировать востребованность различных направлений услуг.
1.2.Выбор СУБД.
Целью курсовой работы было создание интернет-системы для обработки заказов на оказание юридических услуг, сбора информации по клиентам, анализ по продажам услуг клиентам. Естественно, возникает вопрос, в каком виде должна храниться эта информация и с помощью каких средств её следует обрабатывать. Так как, например, информация о каждом отдельном клиенте представляет собой типичный набор данных (фамилия, имя, отчество, почтовый адрес, резидентство и т. д.), то очевидно, что в этом случае целесообразно хранить их в реляционной базе данных на сервере. Посредством запросов к базе данных пользователь может получать нужные ему сведения, а администратор может добавлять и изменять данные.
Выбор конкретной СУБД в качестве сервера баз данных осуществлялся исходя из тех преимуществ, которые она имеет перед другими, а также удобства работы с ней. В данном случае был выбрана клиент-серверная СУБД MySQL. Её архитектура изображена на рисунок 1.
Рисунок 1. Клиент-серверная архитектура MySQL
Самая подходящая для MySQL сфера применения - это Интернет, благодаря хорошей системе безопасности этого пакета, стабильной работе и высокому быстродействию. Для создания скриптов был выбран язык программирования PHP, а MySQL – самая популярная СУБД, которая поддерживается этим языком. В PHP есть множество функций, которые позволяют удобно и эффективно работать с базами данных – и это одна из причин выбора данной СУБД.
Рассмотрим преимущества MySQL:
1) Быстродействие
Благодаря внутреннему механизму многопоточности быстродействие MySQL весьма высоко. Для разработчиков MySQL скорость всегда являлась ключевым параметром. Новые возможности добавлялись в пакет MySQL только после того, как их удавалось реализовать без ущерба для производительности. Иногда это означало, что некоторые возможности добавлялись не так быстро, как хотелось бы пользователям, но зато всегда гарантировало быструю работу MySQL.
2) Безопасность
Довольно высокий уровень безопасности обеспечивается благодаря базе данных MySQL, создающейся при установке пакета и содержащей пять таблиц. При помощи этих таблиц можно описать, какой пользователь из какого домена с какой таблицей может работать и какие команды он может применять. Пароли, хранящиеся в базе данных, можно зашифровать при помощи встроенной в MySQL функции password().
3) Лицензия
Раньше лицензирование MySQL было немного запутанным; сейчас эта программа для некоммерческих целей распространяется бесплатно.
4) Открытость кода
Благодаря этому программист может сам добавлять в пакет нужные функции, расширяя его функциональность так, как ему требуется. За отдельную плату это могут сделать и сами авторы MySQL.
5) Простота использования
Для начала работы с MySQL не требуется сложной процедуры конфигурации. MySQL Server начнёт работать соответствующим образом сразу. По умолчанию выбираются значения, соответствующие минимальному использованию ресурсов диска и памяти. Для получения оптимальной производительности и для специальных условий (например, для проверки входа в систему), конечно же, потребуется дополнительная настройка. Чтобы помочь выполнить такую настройку, предлагаются соответствующие примеры файлов типовой конфигурации.
6) Сообщество
Как следствие открытости кода, бесплатности программы, стабильной и надежной ее работы образовалось сообщество людей, которые не просто лояльны к MySQL, но и всячески участвуют как в развитии самого пакета, так и в обучении менее опытных людей работе с ним. Существует огромное количество листов рассылки и конференций, где можно получить бесплатную помощь в любое время суток.
7) Переносимость
В настоящее время существуют версии программы для большинства распространенных компьютерных платформ. Это говорит о том, что вам не навязывают определенную операционную систему. Вы сами можете выбрать, с чем работать, например с Linux или Windows, но даже в случае замены ОС вы не потеряете свои данные и вам даже не понадобятся дополнительные инструменты для их переноса.
Конечно же, как и любое программное средство, СУБД MySQL не избавлена от некоторых недостатков. Например, можно назвать отсутствие вложенных запросов, что приводит к необходимости находить нужные значения отдельно и подставлять их в другой запрос непосредственно в CGI-сценарии, что, несомненно, сказывается на производительности.
Несмотря на это, СУБД MySQL была выбрана как наиболее подходящий сервер баз данных для интернет-ресурса «ipravo» для компании ТОО «ИнтерПраво».
Для построения ER-модели БД будет использоваться программа Microsoft Visio так как она построена исключительно на профессиональном уровне, что обеспечивает правильное построение технических проектов и моделей. Такая платформа дает по-настоящему эффективную и удобную работу. Позволяет легко и просто создавать технические проекты, диаграммы, модели, а также редактировать их, выравнивать, изменяя размеры.
1.3. Проектирование логической структуры базы данных
На этом этапе логического проектирования необходимо определить типы и длины полей, связи между объектами. Для получения функциональной и удобной системы БД нормализована до третей нормальной формы. Представим описание объектов и связей между ними в виде ER-модели БД ipravo, которая предоставлена ниже.
Рисунок 2. ER-модель БД ipravo
Рассмотрим подробнее объект «Пользователи» (users) таблица 1.
Таблица 1
Атрибуты |
Тип |
Ключ |
Описание |
id |
Int |
primary |
Код пользователя |
name |
Varchar (191) |
Имя для приветсвия |
|
|
Varchar (191) |
Почта(Логин) |
|
password |
Varchar (191) |
Пароль |
|
is_active |
Tinyint(1) |
Активность записи пользователя |
|
remember_token |
Varchar(100) |
Криптографический токен |
|
created_at |
timestamp |
Когда создано |
|
updated_at |
timestamp |
Когда обновлено |
Рассмотрим подробнее объект «Профиль пользователя» (profile) таблица 2. У пользователя может быть несколько профилей, в связи с чем создана отдельная таблица от таблицы «Пользователи».
Таблица 2
Атрибуты |
Тип |
Ключ |
Описание |
id |
Int |
primary |
Код профиля пользователя |
user_id |
Int |
foreign |
Код пользователя |
profile_state_type_id |
Smallint(5) |
Статус: юр. или физ. лицо |
|
phone |
Varchar (32) |
Телефон |
|
|
Varchar (191) |
Дополнительная почта |
|
last_login_date |
datetime |
Дата последнего входа |
|
is_resident |
Tinyint(1) |
Резидентство |
|
full_name |
Varchar (191) |
ФИО пользователя |
Рассмотрим подробнее объект «Тип статуса» (profile_state_type) таблица 3. Это справочник типов статусов клиента: Физическое и Юридическое лицо. Необходим для того чтобы на уровне БД разделить услуги для разных типов клиентов.
Таблица 3
Атрибуты |
Тип |
Ключ |
Описание |
profile_state_type_id |
Int |
primary |
Код типа статуса |
name |
Varchar (32) |
Название (юр. или физ. лицо) |
Рассмотрим подробнее объект «Профиль организации» (profile_legal) таблица 4.
Таблица 4
Атрибуты |
Тип |
Ключ |
Описание |
id |
Int |
primary |
Код статуса |
profile_id |
Int |
foreign |
Код профиля |
company_name |
Varchar (128) |
Название организации |
|
business_identification_number |
Varchar (16) |
БИН |
|
contact_person |
Varchar (128) |
Контактное лицо (КЛ) |
|
position |
Varchar (256) |
Должность КЛ |
|
scope_activity |
Varchar (1024) |
Описание Деятельности |
Рассмотрим подробнее объект «Документы профиля» (profile_document) таблица 5.
Таблица 5
Атрибуты |
Тип |
Ключ |
Описание |
id |
Int |
primary |
Код статуса |
profile_id |
Int |
foreign |
Код профиля |
document_id |
Int |
foreign |
Код документа |
Рассмотрим подробнее объект «Документы» (document) таблица 6.
Таблица 6
Атрибуты |
Тип |
Ключ |
Описание |
id |
Int |
primary |
Код статуса |
name |
Varchar (256) |
Наименование |
|
path |
Varchar (1024) |
Путь к папке |
|
document_type_id |
Int |
foreign |
Код типа документа |
Рассмотрим подробнее объект «Тип документа» (document_type) таблица 7.
Таблица 7
Атрибуты |
Тип |
Ключ |
Описание |
id |
Int |
primary |
Код типа документа |
name |
Varchar (32) |
Наименование |
Рассмотрим подробнее объект «Роль пользователя» (user_role) таблица 8.
Таблица 8
Атрибуты |
Тип |
Ключ |
Описание |
id |
Int |
primary |
Код роли пользователя |
user_id |
Int |
foreign |
Код пользователя |
role_id |
Int |
foreign |
Код роли |
Рассмотрим подробнее объект «Роли» (role) таблица 9.
Таблица 9
Атрибуты |
Тип |
Ключ |
Описание |
id |
Int |
primary |
Код роли |
name |
Varchar (32) |
Наименование |
Рассмотрим подробнее объект «Услуги» (service) таблица 10.
Таблица 10
Атрибуты |
Тип |
Ключ |
Описание |
id |
Int |
primary |
Код услуги |
name |
Varchar (45) |
Наименование |
|
price |
Int |
Цена |
Рассмотрим подробнее объект «Услуги по типу профиля» (profile_state_type_service) таблица 11. Это те услуги, которые предлагаются либо физическим, либо юридическим лицам.
Таблица 11
Атрибуты |
Тип |
Ключ |
Описание |
id |
Int |
primary |
Код услуги по типу профиля |
profile_state_type_id |
Int |
foreign |
Код статуса |
service_id |
Int |
foreign |
Код услуги |
Рассмотрим подробнее объект «Услуги профиля» (profile_service) таблица 12.
Таблица 12
Атрибуты |
Тип |
Ключ |
Описание |
id |
Int |
primary |
Код услуги профиля |
profile_id |
Int |
foreign |
Код профиля |
service_id |
Int |
foreign |
Код услуги |
order_date |
Datetime |
Дата заказа услуги |
|
payment_date |
Datetime |
Дата оплаты услуги |
|
payment_status |
Tinyint(1) |
Статус оплаты(Да/Нет) |
Рассмотрим подробнее объект «Услуги менеджера» (user_service) таблица 13.
Таблица 13
Заключение
Атрибуты |
Тип |
Ключ |
Описание |
id |
Int |
primary |
Код услуги менеджера |
user_id |
Int |
foreign |
Код пользователя |
profile_service_id |
Int |
foreign |
Код услуги профиля |
start_date |
Datetime |
Дата принятия в работу |
|
finish_date |
Datetime |
Дата исполнения |
|
resolution |
Varchar (45) |
ПРОЕКТИРОВАНИЕ ФИЗИЧЕСКОЙ СТРУКТУРЫ БАЗЫ ДАННЫХ.
Рассмотрим реляционную модель взаимодействия клиента и менеджера при заказе и оказании юридических услуг Таблица 14.
Таблица 14
КЛИЕНТ (Код клиента, БИН, Тип клиента(юр. или физ. лицо), Контактное лицо, телефон контактного лица) |
ЗАПРОС УСЛУГИ КЛИЕНТА( Код запроса, Код услуги, Код клиента, Дата, Оплата) |
ЗАПРОСЫ НА МЕНЕДЖЕРЕ (код запроса, код менеджера, Дата начала обработки, Дата завершения оказания услуги, Резолюция(заключение), |
Для приведения оказания услуг клиентам менеджерами реляционная модель была приведена к трем нормальным формам, а именно в Клиенте от атрибута Код клиента зависят все остальные атрибуты. То есть запись по каждому клиенту уникальна. Запрос услуги клиента уникален и связан вторичным ключом (внешним ключом) с кодом клиента. То есть по каждому клиенту может быть несколько уникальных запросов, которые клиенту необходимо оплатить. Запросы на менеджере -это те запросы, которые менеджер берет в работу. Код запроса и Код менеджера составные ключи, так как один запрос могут обрабатывать несколько менеджеров. Исходя из вышенаписанного можно подытожить что:
- В любом допустимом значении каждый кортеж отношения содержит только одно значение для каждого из атрибутов
- Все не ключевые реквизиты полностью зависят от всего ключа отношения
- Каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Рассмотрим созданные в СУБД структуры таблиц с первичным, внешним или вторичным ключами, а так же индексами, созданные по ER-модели БД ipravo.
Структура таблиц базы данных «Пользователи» рисунок 3.
Рисунок 3. «Пользователи».
Структура таблиц базы данных «Профиль пользователя» рисунок 4.
Рисунок 4. «Профиль пользователя».
Структура таблиц базы данных «Тип статуса» рисунок 5.
Рисунок 5. «Тип статуса».
Структура таблиц базы данных «Профиль организации» рисунок 6.
Рисунок 6. «Профиль организации».
Структура таблиц базы данных «Документы профиля» рисунок 7.
Рисунок 7. «Документы профиля».
Структура таблиц базы данных «Документы» рисунок 8.
Рисунок 8. «Документы».
Структура таблиц базы данных «Тип документа» рисунок 9.
Рисунок 9. «Тип документа».
Структура таблиц базы данных «Роль пользователя» рисунок 10.
Рисунок 10. «Роль пользователя».
Структура таблиц базы данных «Роли» рисунок 11.
Рисунок 11. «Роли».
Структура таблиц базы данных «Услуги» рисунок 12.
Рисунок 12. «Услуги».
Структура таблиц базы данных «Услуги по типу профиля» рисунок 13.
Рисунок 13. «Услуги по типу профиля».
Структура таблиц базы данных «Услуги профиля» рисунок 14.
Рисунок 14. «Услуги профиля».
Структура таблиц базы данных «Услуги менеджера» рисунок 15.
Рисунок 15. «Услуги менеджера».
Рассмотрим схему данных сгенерированную автоматически через СУБД MySQL Workbench 6.3 на рисунке 16.
Рисунок 16. Схема данных
2. Практическая часть
2.1 Контрольный пример решения задачи
Для добавления, обновления и изменения данных в БД в системе будут созданы формы, такие как:
- Регистрация пользователя;
- Отправка запроса клиента на получение услуги;
- Прикрепление документов к профилю пользователя;
- Добавление контактных лиц к организации;
- Загрузка фото пользователя;
- Анкета данных для предоставления услуги;
- Загрузка документа менеджером;
- Оплата услуги;
- Добавление оповещений клиента о выполненной услуге;
- Принятие менеджером услуги в работу и другие формы отображения отчетности по введённым в БД данным.
Рассмотрим некоторые примеры, как будут выглядеть входные формы и запросы по ним.
Ввод данных в таблицу с пользователями, регистрация пользователя/ клиента. Рисунок 17.
Рисунок 17. Регистрация пользователя/Клиента
Ввод нового пользователя в БД:
INSERT INTO `ipravodb`.`users` (`id`, `name`, `email`, `password`) VALUES ('11', 'Новый пользователь', 'new@gmail.ru', '$2y$10$2L2j0APCZuVbmk1bziPvoegR665nQQ3RONi5LtqiiqIwx/g52RDDe');
Запрос в БД показать всех пользователей приведён на рисунке ниже.
Рисунок 18. Запрос все пользователи
Получение пользователей, которые являются юридическими лицами Рисунок 19.
Рисунок 19. Запрос вытаскивает всех юридических лиц
Подсчет юредических лиц которые зарегистрированы в системе на Рисунке 20
Рисунок 20. Запрос количества юр. лиц
Написание резолюции или консультационной информации менеджером (юристом) в поле Комментарий Рисунок 21.
Рисунок 21. Окно изменения статуса выполнения услуги и комментарий к ней
На стороне сервера отправиться после сохранения данных отправится следующий запрос:
UPDATE `ipravodb`.`user__service` SET resolution`='Документы заверены. Курьер привезет' WHERE `id`='1';
2.2 Разработка интерфейса и реализация проекта
Структура программной системы обработки данных согласно построенным моделям, данных в среде, выбранной СУБД представлена ниже на рисунке 22.
Рисунок 22. Структура программной системы обработки данных
Личный кабинет клиента состоит из контактной информации (рисунок 23), уведомлений от менеджера, документов клиента, с перечнем получаемых услуг и всех его документов, историй услуг на портале (рисунок 24). Интерфейс у клиента и нотариального менеджера аналогичен за исключением информации во вкладке Мои услуги. У менеджера в это вкладке виден список услуг, которые он взял для рассмотрения (рисунок 25).
Рисунок 23. Контактная информация по клиенту
Рисунок 24. Часть с услугами и документами по клиенту
Рисунок 25. Список услуг в кабинете у менеджера-нотариуса
Запрос 1. Личный кабинет клиента:
select * from users as u
join profile as p
on u.id=p.user_id
join profile_legal as pl
on pl.profile_id=p.id
where u.id=5
Запрос 2. Личный кабинет менеджера:
select * from users as u
join profile as p
on u.id=p.user_id
where u.id=10
Запрос 3. Запрошенные услуги клиентом:
select * from profile_service as ps
join profile as p
on p.id=ps.profile_id
join users as u
on u.id=p.user_id
left join service as s
on s.id=ps.service_id
where p.user_id=5
order by ps.order_date desc
Запрос 4. Запрошенные услуги менеджером:
select * from user_service1 as us
join users as u
on u.id=us.user_id
join profile_service ps
on ps.id=us.profile_service_id
left join service as s
on s.id=ps.service_id
where us.user_id=10
order by ps.order_date desc
Когда несколько услуг было обработано по клиенту, у него может высвечиваться общее число обработанных услуг. Запрос 5:
select count(*) from profile_service as ps
join profile as p
on p.id=ps.profile_id
join users as u
on u.id=p.user_id
left join service as s
on s.id=ps.service_id
where p.user_id=5
group by (p.user_id)
Форма «Документы» отображена на рисунке 26. В этой форме собраны все документы необходимые как клиенту для получения услуги, так и для менеджера (нотариуса или юриста) который предоставляет нотариальные услуги.
Рисунок 26. Форма «Документы»
Документы на этой форме отображаются по запросу 5:
SELECT * FROM
document as d
join profile_document as pd
on pd.document_id=d.id
where pd.profile_id=2
Результат такого запроса в СУБД показан на рисунке 27.
Рисунок 27. Результат отображения документов пользователя.
Заключение
По окончанию проведенной работы была создана система для предоставления юридических услуг квалифицированными специалистами в независимости от географического положения клиента и его возможности покидать дом. Так также создана возможность сбора информации по всем клиентам компании ТОО «ИнтерПраво» и истории представляемых услуг.
Цель и задачи работы были создание БД для сбора информации в едином источнике по клиентам компании ТОО «ИнтерПраво» и истории и анализа предоставленных услуг организацией. В итоге получили готовую БД, которая корректно заполняется, обновляется и легко выдает заказчику нужную
информацию и отчетность.
Список литературы
- Попов И. И., Максимов Н. В., Голицына О. Л. Базы данных. – М.: ФОРУМ: Инфра-М, 2006. – 352 с.
- Полякова Л. Н. Основы SQL. [Электронный ресурс] // Интернет-университет информационных технологий - ИНТУИТ.ру, 2004.–Режим доступа: http://www.intuit.ru/department/database/sql/.
- Никандрова Ю.А. Интернет курс по дисциплине «Базы данных (Управление данными)» // Московский финансово-промышленный университет «Университет», 2012. Режим доступа: http://e-biblio.ru/book/bib/01_informatika/bazy_dannyx/sg.html
- Процесс построения модели управленческого решения (Построение модели управленческого решения для ООО «Билдинг-Прогресс»)
- Государство как особый субъект гражданского права (Понятие гражданской правосубъектности государства)
- Анализ движения денежных средств. Структура движения денежных средств. Взаимосвязь чистой прибыли и движения денежных средств (Оценка и анализ денежных потоков ЗАО «ВБК»)
- Управление финансовой инвестиционной деятельностью предприятий (Сущность и особенности инвестиционной политики предприятия)
- Психология профессиональной карьеры: (психологическое сопровождение профессиональной карьеры; отбор, адаптация, развитие персонала в организации, развитие персонала и ситуационное лидерство) (Подходы к исследованию карьеры в социальной психологии)
- Психологический контракт и приверженность сотрудников к организации (Сущность психологического контракта)
- Основные продукты программного проекта (Сущность, виды и особенности управления инвестиционным проектом)
- Мотивация в управлении на примере реально существующей организации ( СОВРЕМЕННЫЕ ТЕХНОЛОГИИ МОТИВАЦИИ ПЕРСОНАЛА И ИХ ИСПОЛЬЗОВАНИЕ В ПРАКТИКЕ УПРАВЛЕНИЯ СОТРУДНИКАМИ)
- Интеллектуальная собственность (Источники интеллектуальной собственности)
- Сущность и особенности наследования по завещанию
- PR в системе Интегрированных коммуникации (ОАО «СПЕЦМОНТАЖ»)
- Интернет-маркетинговые решения для салона красоты («Curly hair»)