Основное приложение включает в себя функции администрирования: соединения, управления пользователями, управление правами доступа, манипуляции справочной информацией – курсы валют и фирмы-производители.
2.4 Проектирование информационного обеспечения
Для разработки моделей данных и обеспечения стандартного способа определения данных и отношений между ними построим диаграмму сущность–связь (ERD).
Рис.5 ER-модель информационной системы
На рисунке 5 изображены основные сущности информационной системы и их атрибуты. Сущность “Счет” имеет ключевой атрибут “Номер” и связан с сущностью “Клиент” отношением многие – к - одному (атрибут “Клиент”). Она отражает абстрактный объект – счет клиента, с его свойствами: суммой счета и датой выписки. Атрибут состояние отражает текущее состояние счета: “Выписан”, “Оплачен”, “Выполнен”. Сущность “Клиент” отражает реальный объект – покупателя, то есть физическое или юридическое лицо (определяется атрибутом “Тип”) и его реквизиты: для физического лица – Ф.И.О., для юридического лица – “Имя”, “Расчетный счет”, ”ИНН”, “Телефон” и “Ф.И.О. руководителя”. Сущность “Книга продаж” представляет собой список счетов за период. Сущность “Товар” – одна из основных сущностей системы отражает реальный объект – товар с атрибутами “Наименование” и “Входная цена”. “Счет” связан с этой “Сущностью” отношением один -ко- многим. Сущность “Прайс” описывает свойства абстрактного объекта прайс-лист и связана отношением один – ко - многим с сущностью “Товар”. Для формирования сущности “Заказ” необходима его связь с сущностью “Счет” отношением один-ко- многим с сущностью “Счет”. Реальный объект – поставщик определяется с помощью одноименной сущности с атрибутами, отражающими реквизиты организации-поставщика. Так как поставщик может одновременно выполнять несколько заказов, то соответствующая ему сущность связана с сущностью “Заказ” отношением один -ко- многим. Сущность “Поставка” описывает абстрактный объект – поставку, которая имеет свойства(атрибуты) “Дата” и “Поставщик”. Таким образом сущность “Склад” состоит из абстрактных объектов-поставок, которые состоят из реальных объектов – товаров. Необязательная связь между сущностью “Склад” и сущностью “Товары” отражает альтернативный способ пополнения склада – вне поставок.
2.5 Проектирование структуры БД
Таблица “Товар”.
Назначение: Хранение информации о товарах.
Поля:
Номер – уникальный номер товара в таблице
Наименование – наименование товара
Входная цена, USD – текущая входная цена товара
Тип – определяет, является ли товар конечным или группой
Группа – ссылка на группу товара.
Первичный ключ: Содержит поле “Номер”
Внешние ключи: Ключ FK_NUM реализует связь один-ко-многим по полю “Номер”. С ее помощью можно представить реляционную таблицу в виде дерева.
Рис.5 Структура базы данных.
Таблица “Книга продаж”
Назначение: хранение информации о проданных товарах. Фактически, используется для хранения содержимого по каждому счету.
Поля:
Номер – уникальный номер товара в таблице
Номер счета – ссылка на счет, которому принадлежит данный товар
Количество товара –количество единиц товара
Номер товара– ссылка на товар
Первичный ключ: Содержит поле “Номер”
Внешние ключи: Ключ FK_Товар реализует связь один-ко-многим по полю “Номер” с таблицей “Товар”.
Таблица “Счет”
Назначение: хранение списка счетов клиентов.
Поля:
Номер – уникальный номер счета в таблице
Клиент – ссылка на клиента, которому счет выписан счет
Дата – дата выписки счета
Сумма – суммарная стоимость товаров, включенных в счет
Состояние – “выписан”, “оплачен”,”выполнен”
Скидка – скидка по счету
Первичный ключ: Содержит поле “Номер”
Внешние ключи: Ключ FK_Клиент реализует связь многие-к-одному по полю “клиент” с таблицей “Клиент”.
Таблица “Клиент”
Назначение: хранение списка клиентов.
Поля:
Номер – уникальный номер клиента таблице
Тип – признак физического или юридического лица
ФИО\Наименование - ФИО\Наименование клиента
Телефон - телефон юридического лица
Адрес – адрес юридического лица
Р\С – расчетный счет юридического лица
ИНН – Индивидуальный номер налогоплательщика
Директор – директор организации-клиента
Гл. бухгалтер - гл. бухгалтер организации-клиента
Первичный ключ: Содержит поле “Номер”
Внешние ключи: отсутствуют
Таблица “Заказ”
Назначение: используется для хранения списка заказов
Поля:
Номер – уникальный номер заказа в таблице
Дата – Дата формирования заказа
Поставщик – ссылка на поставщика, которому будет передан заказ
Сумма – суммарная стоимость заказа в ценах поставщика
Первичный ключ: Содержит поле “Номер”
Внешние ключи: Ключ FK_Поставщик реализует связь один-ко-многим по полю “Поставщик” с таблицей “Поставщик”.
Таблица “Содержимое заказа”
Назначение: предназначена для хранения списка товаров (ссылок), которые вошли в заказы.
Поля:
Номер – уникальный номер товара в таблице
Номер товара – ссылка на товар
Количество товара – количество единиц товара
Входная цена – цена на товар в момент заказа
Номер заказа – ссылка на заказ, которому принадлежит товар
Первичный ключ: Содержит поле “Номер”
Внешние ключи: Ключ FK_Заказ реализует связь один-ко-многим по полю “Номер заказа” с таблицей “Заказ”.
Таблица “Поставка”
Назначение: хранение списка поставок.
Поля:
Номер – уникальный номер поставки в таблице
Дата прихода поставки на склад
Номер поставщика – ссылка на поставщика
Сумма – суммарная стоимость товаров в поставке
Первичный ключ: Содержит поле “Номер”
Внешние ключи: Ключ FK_Поставщик реализует связь один-ко-многим по полю “Номер поставщика” с таблицей “Поставщик”.
Таблица “Поставщик”
Назначение: хранение информации о поставщиках
Поля:
Номер – уникальный номер поставщика в таблице
Наименование - наименование поставщика
Телефон – телефон поставщика
Адрес – адрес поставщика
Р\С – расчетный счет поставщика
ИНН – Индивидуальный номер налогоплательщика
Контактное лицо – контактное лицо
Первичный ключ: Содержит поле “Номер”
Внешние ключи: отсутствует
Таблица “Содержимое поставки”
Назначение: хранение информации о списке товаров по каждой поставке
Поля:
Номер – уникальный номер товара в таблице
Номер поставки – ссылка на поставку
Количество товара – количество единиц товара
Номер товара – ссылка на товар
Первичный ключ: Содержит поле “Номер”
Внешние ключи: Ключ FK_Поставка реализует связь один-ко-многим по полю “Номер поставки” с таблицей “Поставка”.
Таблица “Банк”
Назначение: хранение списка банков, с которыми работает организация
Поля:
Номер – уникальный номер банка в таблице
Наименование - наименование банка
Номер вх. счета - номер счета входящих платежей
Номер исх. счета - номер счета исходящих платежей
Телефон – телефон
Первичный ключ: Содержит поле “Номер”
Внешние ключи: отсутствует
Таблица “Платеж”
Назначение: хранение реестра входящих и исходящих платежей.
Поля:
Номер – уникальный номер платежа в таблице
Сумма – сумма платежа
Банк – ссылка на банк
Номер счета – в случае входящего платежа это ссылка на счет, по которому произведена оплата; в случае исходящего платежа это номер счета входящих платежей банка
Дата - дата платежа
Тип – входящий\исходящий
Описание – для пользователя
Первичный ключ: Содержит поле “Номер”
Внешние ключи: Ключ FK_Банк реализует связь один-ко-многим по полю “Банк” с таблицей “Банк”.
Таблица “Счет-фактура”
Назначение: хранение списка счет-фактур
Поля:
Номер – уникальный номер счет-фактуры в таблице
Дата формирования
Номер поставщика – ссылка на поставщика
Сумма – суммарная стоимость товаров в поставке
Первичный ключ: Содержит поле “Номер”
Внешние ключи: Ключ FK_Поставщик реализует связь один-ко-многим по полю “Номер поставщика” с таблицей “Поставщик”.
2.6 Проектирование приложения “Прайс”
В этом приложении, в качестве структуры данных для хранения товаров было выбрано дерево. Физически, дерево представляет собой реляционную таблицу с дополнительным полем ”Родитель”, которое позволяет организовать связь между группами \ подгруппами и товарами. Первый узел - “Все товары” не имеет родителя и все группы или товары первого уровня являются его потомками. Как следует из анализа требований приложение “Прайс” должно выполнять определенные функции, вызов которых осуществляется из главного меню приложения (рис. 6).
Рис.6 Приложение “Прайс” – главная форма.
Для удобства, функции логически сгруппированы по объекту применения: товары, группы товаров, другие.
Товары
Добавление товара в прайс-лист. Позволяет внести новое наименование в прайс-лист. Служит основным средством для манипуляции ассортиментом. Родитель товара – текущая группа. Входная информация: Наименование и цена товара. Выходная информация – измененный прайс-лист.
Удаление. Позволяет удалить товар из прайс-листа. Не влечет за собой изменения склада\поставок. Отражает факт прекращения работы с данным товаром. Входная информация: товар(номер). Выходная информация – измененный прайс-лист.