АРМ библиотекаря:

АРМ сотрудника отдела комплектования:

Задание для самостоятельной работы. Этап 1.

В произвольной форме разработайте концептуальную схему вашего проекта. Коротко опишите требования к системе, определите роли пользователей и режимы их работы. В рамках вашего проекта должно быть не менее 2 ролей пользователей. База данных должна содержать не менее 5 таблиц. Имейте в виду, что пользователями вашей системы должны быть именно сотрудники некоторого предприятия. Интерфейс для «внешнего» пользователя (покупателя, читателя, клиента) разрабатывать не обязательно.

Этап 2. Разработка структуры базы данных

ER-модель

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

Сущность «книга» характеризуется уникальным номером ISBN, автором, названием, годом издания, ценой, количеством страниц, обложкой. Атрибуты книги «издательство» и «категория» выделим в отдельные сущности-справочники.

В библиотеке может быть несколько экземпляров одной и той же книги. Чтобы избежать дублирования информации, выделим отдельную сущность «экземпляр», которая связана с книгой связью многие-к-одному. Свойство «статус» может принимать значения «в хранилище», «на абонементе», «выдан». Свойство «состояние» может принимать значения «годен», «списан», «утерян».

Сущность «читатель» содержит атрибуты: номер читательского билета, ФИО, адрес, телефон, e-mail, номер паспорта, логин, пароль.

Сущность «сотрудник» содержит атрибуты: номер сотрудника, ФИО, адрес, телефон, e-mail, должность, логин, пароль.

НЕ нашли? Не то? Что вы ищете?

Для фиксации информации о заявках и выдачах книг создадим слабую сущность «заявка(выдача)», которая будет содержать дату заявки, а также информацию о выдаче книги: дату выдачи, срок возврата, фактическую дату возврата, логин библиотекаря, выдавшего и принявшего книгу.

Реляционная модель

Преобразуем ER-модель в реляционную модель. Получим следующие таблицы.

Книга(ISBN, Название, Автор, Цена, Год, Страницы, Обложка, Тип, НомИзд, НомКат) - ISBN будет внешним ключом для таблицы Экземпляр.

Издатель(НомИзд, НазИзд) – столбец НомИзд является внешним ключом для таблицы Книга.

Категория(НомКат, НазКат) – столбец НомКат является внешним ключом для таблицы Книга.

Экземпляр (НомЭкз, Статус, Состояние, ISBN) – НомЭкз будет внешним ключом для таблицы Заявка.

Сотрудник (Логин, Пароль, ФИОСотр, АдрСотр, ТелефСотр, E-mailСотр, Должность) – на самом деле таблица пользователей-сотрудников (точнее, несколько таблиц) автоматически создается в проекте , об этом мы будем говорить подробнее в дальнейшем, а пока примем за первичный ключ сотрудника его Логин.

Читатель(НомБилета, Логин, Пароль, ФИОЧит, Паспорт, ДатаРожд, АдрЧит, ТелефЧит, E-mailЧит) – логин тоже является уникальным, но для удобства сделаем первичным ключом номер билета.

ЗаявкаВыдача(НомБилета, НомЭкз, ДатаЗаявки, ДатаВыдачи, СрокВозврата, ДатаВозврата, ЛогинВыдал, ЛогинПринял) – слабая сущность в составе своего первичного ключа содержит все первичные ключи своих сильных сущностей.

Конфигурирование приложения

Для создания базы данных воспользуемся визуальными возможностями Visual Studio, предусмотренными для администрирования приложения. Выберем в главном меню Web SiteASP.Net Configuration, запустится web-страница для конфигурирования приложения. Перейдем на закладку Provider и щелкнем по гиперссылке Select a single provider for all site management data. Здесь указан единственно возможный провайдер данных AspNetSqlProvider. Щелкнем по гиперссылке test. Получим сообщение «Successfully established a connection to the database».

Теперь настроим тип аутентификации. Здесь есть два варианта: либо использовать учетные записи Windows, либо создавать и хранить пользователей, роли и полномочия в нашей собственной базе данных. Используем второй вариант. Выберите закладку SecuritySelect authentication typeFrom the internet и нажмите на кнопку Done. В папке App_data нашего проекта появится файл aspnetdb. mdf – это и есть файл базы данных SQL server.

Теперь будем создавать роли: на закладке Security щелкните по гиперссылке Enable roles, а затем по гиперссылке Create or Manage roles. Создадим 3 роли – librarian, collector, warehouse. Роль читателя будем обрабатывать отдельно.

Для каждой роли нужно назначить права доступа. Сначала в нашем проекте создадим для каждой роли отдельную папку, куда в дальнейшем будем помещать файлы сценариев (если к каким-то сценариям должны иметь доступ разные роли, для таких сценариев тоже можно создать отдельную папку). Затем на вкладке Security будем использовать ссылки Create access rules и Manage access rules. Здесь можно разрешать (allow) или запрещать (deny) доступ разных пользователей и ролей к папкам. Например, для папки librarian (библиотекарь) назначение прав доступа будет выглядеть следующим образом:

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

При попытке доступа к этому каталогу из любой другой роли будет выполняться автоматическая переадресация на страницу авторизации (login. aspx).

Назначенные нами права доступа сохраняются в файле конфигурации web.config соответствующего каталога и выглядят примерно так:

<authorization>

<allow roles="librarian" />

<deny users="*" />

</authorization>

Теперь создадим, по крайней мере, по одному пользователю для каждой роли. Обратите внимание, что по умолчанию пароль должен содержать не менее 7 символов, и не менее чем одним символ должен быть небуквенным и нецифровым. Не забудьте привязать пользователя к роли, т. е., отметить соответствующий флажок в столбце “Roles”.

У вас может возникнуть вопрос – а где же, собственно, будут сохраняться все эти данные? Для них Visual Studio автоматически создает необходимые таблицы. Откройте в проекте вкладку Server и посмотрите, какие таблицы имеются по умолчанию в нашей базе данных:

·  роли хранятся в таблице aspnet_Roles,

·  пользователи – в таблицах aspnet_Users и aspnet_Membership,

·  связь пользователей с ролями – в таблице apsnet_UsersInRoles.

Вы, наверное, обратили внимание, что у пользователей нет ни ФИО, ни должности, ни адреса? Для этих и прочих дополнительных полей мы будем в дальнейшем использовать такое понятие, как Profile. Отложим этот вопрос до следующего этапа.

Создание таблиц в SQL server

Нам осталось создать остальные нужные нам для работы таблицы. Выберите базу данных, папку Tables, щелкните правой кнопкой мыши, выберите Add new table и создавайте структуру таблиц в визуальном режиме. Для задания первичного ключа выберите нужное поле таблицы (для составного ключа нужно выделить несколько полей), щелкните правой кнопкой мыши и выберите пункт «Set primary key». Рядом с названием появится изображение ключика.

Наши таблицы имеют следующую структуру:

Categories (Категории)

Имя столбца

Тип (размер)

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

Id_cat

Int

Identity, первичный ключ

Name_cat

Nchar(100)

Not null

Publishers (Издатели)

Имя столбца

Тип (размер)

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

Id_publ

Int

Identity, первичный ключ

Name_publ

Nchar(100)

Not null

Books (Книги)

Имя столбца

Тип (размер)

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

ISBN

Nchar(20)

Not null, первичный ключ

Name_book

Nchar(100)

Not null

Author

Nchar(100)

Not null

Price

Decimal(6,2)

Not null

Year

Decimal(4,0)

Not null

Pages

Int

Not null

Type

Smallint

Not null, 1 – учебная, 0– прочая

Id_cat

Int

Not null, default=1

Id_publ

Int

Not null, default=1

Image

Varchar(50)

Not null

Items (Экземпляры)

Имя столбца

Тип (размер)

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

Id_item

Int

Identity, первичный ключ

State

Int

Not null, 0– годен, 1– списан, 2 –утерян.

Status

Int

Not null, 0 – в хранилище, 1 – на абонементе, 2 – на руках

ISBN

Nchar(20)

Not null

Для удобства заполнения состояния и местонахождения экземпляра книги создадим вспомогательные таблицы State и Status

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14