Поиск по этому блогу

Проектирование веб-приложения и создание таблиц


Проектирование интернет-приложения

Рассмотрим в качестве примера простое приложение для торговой сети с распределенными точками продаж сезонных товаров, например, киосков с мороженым, попкорном, напитками и т.п. Наше приложение имеет два типа пользователей: продавец и главный менеджер. Функции приложения представим в виде диаграммы вариантов использования (рисунок 3.3).

Рисунок 3.3 – диаграмма вариантов использования системы

В каждой торговой точке работает один продавец, который ежедневно отчитывается об остатках товаров каждого вида и сумме выручки. Если продавцу нужны справочные данные о товарах или других сотрудниках, то он может воспользоваться справочниками. Главный менеджер должен иметь информацию о сумме ежедневной выручки в каждой точке и в целом по сети, он также формирует базу справочных данных о сотрудниках, товарах и торговых точках. Оба пользователя должны авторизоваться при входе в систему.
Реализация системы в виде веб-приложения будет удобна для пользователей, так как им не придется для ввода и просмотра информации собираться в офисе, достаточно иметь доступ к интернету. Основой приложения будет база данных, в которой будет собираться вся информация о продажах. Веб-приложение должно давать каждому пользователю удобный доступ к тем функциям, которые ему нужны.
Первый вариант архитектуры системы -это общее для всех пользователей веб-приложение, которое после авторизации пользователя предоставляет разным пользователям различные функции по работе с общей базой данных.
Второй вариант архитектуры – это разработка двух независимых веб-интерфейсов, по одному для каждого типа пользователя. Второй вариант значительно проще для реализации, так как интерфейсы разных пользователей не имеют общих функций, кроме авторизации. Выбираем для работы вариант 2.
Далее проведем анализ структуры информации в предметной области. Для работы пользователей необходимы справочники товаров, сотрудников, торговых точек. Оперативные данные – это выручка и остатки. Структура данных показана на рисунке 3.4 в форме диаграммы «сущность-связи». На рисунках также предложены обобщенные типы для каждого атрибута.

 

 

Рисунок 3.4 – схема БД и структура таблиц

Для создания базы данных нам необходимо выбрать подходящие типы полей, имеющиеся в Oracle DB (таблица 3.1).

Таблица 3.1 – Типы полей Oracle DB и Access
Тип поля Access тип поля Oracle
Числовой, все форматы, в том числе: Счетчик, Длинное целое, Действительное, Денежный NUMBER — числовые данные
Текстовое (короткий текст) VARCHAR 2 — текстовые строки переменной длины до 4000 байт.
Поле MEMO (длинный текст) LONG — текстовые строки длиной до 2 ГБ
CLOB – тексты длиной до 4 Гб
Дата / время DATE — даты
TIME - время

Упражнение. Выберите типы данных для таблицы с рисунка 3.3, распределив по 1-2 таблицы между членами бригады. Напишите SQL-команды для определения таблиц. Не забудьте описать первичный и внешние ключи таблиц.

 Создание таблиц в диалоговом режиме

Для создания таблиц можно использовать как диалоговый режим, так и SQL-скрипт, описывающий структуру всех таблиц базы данных.
Здесь мы воспользуемся диалоговым режимом, который похож на конструктор таблиц Access. Выполните команду меню SQL WorkShop / Object Browser, затем нажмите + / Table около правой границы окна (рисунок 3.5).


Рисунок 3.5 – команда создания таблицы
В реляционной БД одна из двух связанных таблиц называется родительской (на стороне отношения «один»), а вторая - дочерней (на стороне «многие»). Общий столбец связанных таблиц должен иметь одинаковый тип данных и длину. В родительской таблице столбец для связи является первичным ключом или имеет уникальный индекс и не содержит повторяющихся значений. В дочерней таблице связанный столбец называют внешним ключом, он может содержать повторяющиеся значения. Для ссылочной целостности значения внешнего ключа должны иметь соответствия в связанном столбце родительской таблицы или быть пустыми.

.
Создание БД следует начать с родительских таблиц, чтобы при описании дочерних таблиц можно было указать внешний ключ. Например, можно выбрать следующий порядок: ТорговаяТочка, Сотрудники, Выручка, Товар, Остатки.
В диалоге Create Table сначала  нужно указать имя таблицы, затем определить имена, типы, длину (Scale) текстовых и числовых полей, точность представления (Precision) числовых полей, отметить обязательные поля (NOT NULL) (рисунок 3.6)


Рисунок 3.6 – диалог описания структуры таблицы

На следующем шаге необходимо выбрать первичный ключ и способ его ввода (рисунок 3.7). Для автоматического заполнения числовых полей типа «Счетчик» можно использовать специальный объект Sequence. Чтобы создать для каждой таблицы свой счетчик, выбирайте "populated from a new sequence". Другие варианты используются для создания составных ключей, не автозаполняемых ключей и др.

Рисунок 3.7 – создание внешних ключей
Если таблица является дочерней, то в ней должен быть один или несколько внешних ключей (по одному для каждой родительской таблицы). Мы должны указать поля, которые являются внешними ключами, а также, что должна делать СУБД при удалении родительской записи:

  •  disallow delete - запретить удалять, если есть связанные записи в дочерней таблице,
  •  cascade delete – удалить дочерние записи вместе с родительской,
  •  set Null on delete – заменить значение внешнего ключа на «Пустое».
Последний шаг предназначен для ввода SQL-скрипта, контролирующего более сложные условия проверки целостности данных (Раздел Columns/Check). В конце концов генерируется SQL-скрипт с полным описанием структуры таблицы.
Рисунок 3.8 – режим редактирования таблицы
Структуру созданных таблиц можно изменить, внести в них данные, посмотреть связи с другими таблицами и др. Например, на рис.3.8 показана структура демонстрационной таблицы Demo_Customers (Клиенты) и помечены элементы интерфейса страницы, управляющие ее работой.


Для ввода данных в диалоговом режиме служит команда Data. Замечу, что наше веб-приложение будет иметь специальные формы для ввода данных, гораздо более удобные, чем средства, предназначенные для разработчиков.


Задание на работу. Создайте таблицы БД с рисунка 3.3, распределив по 1-2 таблицы между членами бригады. Скопируйте полученные SQL-скрипты в текстовый файл и отчет о работе. Добавьте 5-10 строк данных в таблицы в режиме SQL Workshop / Object Browser (например, как на рисунке 3.9).  
Рисунок 3.9 - Пример содержания таблиц 

Комментариев нет:

Отправить комментарий