Сегодня существует огромное число литературных издательств, которые занимаются обработкой большого количества публикаций. В оформлении каждой публикации принимает участие значительное число различных специалистов: от писателей до художников. Использование базы данных и автоматизированной системы для работы с этой базой существенно сокращает время поиска информации о публикации и помогает решить многие другие производственные задачи.
В базе данных необходимо хранить различную информацию о книге. В первую очередь это основная информация — ее название, жанр, количество страниц, год издания. Также требуется хранить информацию об авторе книги, редакторе, художнике, типографии, где эту книгу напечатали, магазине, где эту книгу можно приобрести. Более того в базе хранится информация о поставщиках для указанных выше типографий и магазинов.
Для взаимодействия с этой базой данных необходимо разработать приложение-клиент.
Разрабатываемая база данных включает в себя 8 таблиц (рис.1.). Список таблиц:
1) Authors — информация об авторах (ФИО, ИНН, контактный номер);
2) Editors — информация о редакторах (ФИО, ИНН, контактный номер, год поступления на работу);
3) Providers — информация о поставщиках (ФИО, ИНН, контактный номер, год поступления на работу);
4) Typographies — информация о типографиях (название, ИНН, юридический адрес, контактный номер);
5) Painters — информация о художниках (ФИО, ИНН, контактный номер, год поступления на работу);
6) Stores — информация о магазинах типографиях (название, ИНН, юридический адрес, контактный номер);
7) Books — информация о книгах. Внешние ключи: автор, редактор, художник, типография, магазин, поставщик. А также основная информация о книге: название, жанр, год издания, количество страниц и цена;
8) Users — информация о зарегистрированных в приложении пользователей. При регистрации пользователь указывает ФИО, а также логин и пароль, необходимые для регистрации. Тип пользователя изменяет администратор.
Рис. 1. ER-диаграмма
Каждая таблица в базе имеет id — уникальный ключ. Для этого ключа настроен автоинкремент. Таким образом, при добавлении элемента в любую таблицу, ему автоматически присваивается уникальный идентификационный номер.
В базе данных настроены соответствующие роли: admin, author, editor, provider, painter.
Admin может изменять, добавлять и удалять записи в каждой таблице, а также настраивать роли для каждого пользователя. Editor — те же функции, кроме просмотра списка пользователей и изменения их ролей.
Пользователю с ролью author доступно добавление и изменение элементов в таблице Authors; provider — просмотр таблиц Stores и Typographies; painter — добавление и изменение таблиц Painters.
Разрабатываемый клиент должен реализовывать механизм регистрации и авторизации, отображение контента в зависимости от роли авторизованного пользователя.
Разрабатывать приложение будет в Visual Studio 2017 на Windows Forms.
Приложение представлено на рис.2.
Рис. 2. Окно приложения
Список форм представлен на рис.3.
Рис. 3. Список форм
Формы приложения:
1) FormAdmin — форма для пользователя с ролью admin. Есть доступ ко всем таблицам (в том числе Users).
2) FormAuthor — форма пользователя author. Есть доступ к таблицам Books, Stores, Authors. Можно добавить или изменить запись в Authors.
3) FormAuthorization — форма для авторизации. У textbox, в который вводится пароль, свойство PasswordChar равно «*» (чтобы вводимые символы скрывались), также настроены события Hover и Unhover (чтобы можно было посмотреть введенный пароль при наведении на поле ввода).
4) FormEditor — форма для пользователя с ролью Editor. Доступен просмотр всех таблиц, кроме Users, а также добавление, изменение и удаление элементов в них.
5) FormPainter — форма для пользователей painter. Есть доступ к таблицам Books, Stores, Painters, возможность добавлять и изменять элементы в таблице Painters.
6) FormProvider — форма для пользователей с ролью provider. Есть возможность просматривать таблицы Stores, Typographies, Providers и добавлять или изменять элементы в таблице Providers.
7) FormRegistration — форма для регистрации.
8) FormUnathorized — форма для неавторизованных пользователей. Есть возможность просматривать таблицы Books, Stores.
Разработанная база данных обладает всем функционалом, необходимым для работы литературного издательства. Любой пользователь может зайти в клиентское приложение и посмотреть список опубликованных книг, узнать магазин, где их можно приобрести. А авторам, редакторам, художникам и поставщикам данное приложение помогает упростить организационную работу, неотъемлемо связанную с публикацией любой книги.
Литература:
- Руководство по MS SQL Server. — Режим доступа: https://metanit.com/sql/sqlserver/.
- Введение в базы данных. — Режим доступа: https://compress.ru/article.aspx?id=12460.
- Джон, Ш. Microsoft Visual C#. Подробное руководство / Ш. Джон. СПб.: Изд-во Питер, 2017. — 848с.