Проектування бази даних
На рисунке 2 представлена схема структуры базы данных с указанием степени отношения таблиц друг к другу. InstrumentArrivalsOrders — вспомогательная таблица для хранения списка инструментов в приходах и расходах склада; Исходя из ER-диаграммы, можно сделать вывод, что для программы необходимо 6 основных таблицы с данными. DeviceArrivalsOrders — вспомогательная таблица для хранения списка запчастей… Читати ще >
Проектування бази даних (реферат, курсова, диплом, контрольна)
Для того, чтобы правильно спроектировать базу данных надо правильно определить сущьности и отношения между ними. ER-диаграмма помогает более точно выделить необходимые сущьности и связи, как на рисунке 1.
Рисунок 1 ER-диаграмма отношений.
Из этой диаграммы можно сделать вывод:
- — необходимо выделить отдельные сущности — Инструмент, Запчасть, Приход, Заказ;
- — Сущностью «Склад» создавать не надо, так как он по умолчанию один;
- — Сущности «Заказ» и «Приход» должны содержать в себе коллекции инструментов и запчастей, но создать отношение «1-к-многим» не представляется возможным, так как в позиции заказа или прихода необходимо указать кол-во необходимых в заказе или приходе запчастей или инструментов;
- — Исходя из предыдущего пункта, необходимо выделить еще две сущности — «Корзина инструментов» в которой хранится коллекция инструментов заказа или прихода с указанием необходимого количества и «Корзина запчастей», в которой хранится коллекция запчастей заказа или прихода с указанием необходимого количества;
- — Для экономии памяти сервера базы данных было принято решение в таблицах «Корзина инструментов» и «Корзина запчастей» сделать внешние ключи сразу к двум сущностям — «Приход» и «Заказ». В случае, если один из этих внешних ключей равен нулю, второй обязательно заполнен, таким образом вычисляется к заказу или приходу относятся позиции корзины.
Исходя из ER-диаграммы, можно сделать вывод, что для программы необходимо 6 основных таблицы с данными.
Определим сущности, необходимые для хранения информации в программе:
- — Instruments — таблица хранящая информацию о инструментах;
- — Devices — таблица в которой хранится информация о запчастях;
- — Orders — таблица в которой хранится информация о заказах;
- — Arrivals — таблица в которой хранится информация о приходах оборудования на склад;
- — InstrumentArrivalsOrders — вспомогательная таблица для хранения списка инструментов в приходах и расходах склада;
- — DeviceArrivalsOrders — вспомогательная таблица для хранения списка запчастей в приходах и расходах склада.
Таблица 1.
Поля таблицы Instruments.
Параметр | Описание. | Тип данных. |
InstrumentId. | Первичный ключ таблицы. | Int. |
Name. | Название инструмента. | String. |
BuyDate. | Дата приобретения. | DateTime. |
Price. | Цена инструмента. | Int. |
PlantManufacturer. | Завод изготовитель. | String. |
Count. | Кол-ва инструментов в наличии. | Int. |
Таблица 2.
Поля таблицы Devices.
Параметр | Описание. | Тип данных. |
DeviceId. | Первичный ключ таблицы. | Int. |
Name. | Название запчасти. | String. |
RevisionDate. | Дата проверки. | DateTime. |
PlantManufacturer. | Завод изготовитель. | String. |
ReceivedDate. | Дата получения. | DateTime. |
Units. | Единицы измерения. | String. |
Count. | Кол-ва запчастей в наличии. | Int. |
Таблица 3.
Поля таблицы Orders.
Параметр | Описание. | Тип данных. |
OrderId. | Первичный ключ таблицы. | Int. |
OrderResponcible. | Ответственный за заказ. | String. |
Department. | Цех сделавший заказ. | String. |
OrderDateTime. | Дата заказа. | DateTime. |
Shipped. | Выполнен ли заказ. | Bool. |
Таблица 4.
Поля таблицы Arrivals.
Параметр | Описание. | Тип данных. |
ArrivalId. | Первичный ключ таблицы. | Int. |
ShippedBy. | Кем отправлен приход. | String. |
GetBy. | Кем получен приход. | String. |
GetDate. | Дата получения. | DateTime. |
InvoiceNumber. | Номер накладной. | String. |
SumInstAndDevice. | Сумма прихода. | Int. |
Таблица 5.
Поля таблицы InstrumentArrivalsOrders.
Параметр | Описание. | Тип данных. |
InstrumentArrivalOrdersId. | Первичный ключ таблицы. | Int. |
Count. | Кол-во инструментов в приходе или расходе. | Int. |
ArrivalId_ArrivalId. | Внешний ключ к таблице Arrivals. | Int. |
Instrument_InstrumentId. | Внешний ключ к таблице Instruments. | Int. |
Order_OrderId. | Внешний ключ к таблице Orders. | Int. |
ShippedCount. | Кол-во отгруженных инструментов. | Int. |
Таблица 6.
Поля таблицы DeviceArrivalsOrders.
Параметр | Описание. | Тип данных. |
DeviceArrivalOrdersId. | Первичный ключ таблицы. | Int. |
Count. | Кол-во инструментов в приходе или расходе. | Int. |
ArrivalId_ArrivalId. | Внешний ключ к таблице Arrivals. | Int. |
Device_DeviceId. | Внешний ключ к таблице Devices. | Int. |
Order_OrderId. | Внешний ключ к таблице Orders. | Int. |
ShippedCount. | Кол-во отгруженных запчастей. | Int. |
На рисунке 2 представлена схема структуры базы данных с указанием степени отношения таблиц друг к другу.
Рисунок 2 Схема базы данных