Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой Магазин.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
192.98 Кб
Скачать
    1. Создание внешних ключей

Для того чтобы связать таблички необходимо создать внешние ключи. Создаем запросы при помощи процедуры ALTER TABLE:

Связываем таблицы «Договора» и «Покупатели» по столбцу «PurchaserID»:

ALTER TABLE Document ADD CONSTRAINT FK_Document_Purchaser

FOREIGN KEY(PurchaserID)

REFERENCES Purchaser(PurchaserID)

ON UPDATE NO ACTION

ON DELETE NO ACTION

GO

Связываем таблицу «Поставки» и «Договора» по столбцу «DocumentID»:

ALTER TABLE Delivery ADD CONSTRAINT FK_Delivery_Product

FOREIGN KEY(ProductID)

REFERENCES Product(ProductID)

ON UPDATE NO ACTION

ON DELETE NO ACTION

GO

Связываем таблицу «Накладные» и «Склады» по столбцу «StorageID»:

ALTER TABLE Bill ADD CONSTRAINT FK_Bill_Storage

FOREIGN KEY(StorageID)

REFERENCES Storage(StorageID)

ON UPDATE NO ACTION

ON DELETE NO ACTION

GO

Связываем таблицу «Накладные» и «Договора» по столбцу «DocumentID»:

ALTER TABLE Bill ADD CONSTRAINT FK_Bill_Document

FOREIGN KEY(DocumentID)

REFERENCES Document(DocumentID)

ON UPDATE NO ACTION

ON DELETE NO ACTION

GO

Связываем таблицу «Отгрузки» и «Покупатели» по столбцу «PurchaserID»:

ALTER TABLE Shipment ADD CONSTRAINT FK_Shipment_Purchaser

FOREIGN KEY(PurchaserID)

REFERENCES Purchaser(PurchaserID)

ON UPDATE NO ACTION

ON DELETE NO ACTION

GO

Связываем таблицу «Отгрузки» и «Договора» по столбцу «DocumentID»:

ALTER TABLE Shipment ADD CONSTRAINT FK_Shipment_Document

FOREIGN KEY(DocumentID)

REFERENCES Document(DocumentID)

ON UPDATE NO ACTION

ON DELETE NO ACTION

GO

Связываем таблицу «Отгрузки» и «Товары» по столбцу «ProductID»:

ALTER TABLE Shipment ADD CONSTRAINT FK_Shipment_Product

FOREIGN KEY(ProductID)

REFERENCES Product(ProductID)

ON UPDATE NO ACTION

ON DELETE NO ACTION

GO

Связываем таблицу «Отгрузки» и «Склады» по столбцу «StorageID»:

ALTER TABLE Shipment ADD CONSTRAINT FK_Shipment_Storage

FOREIGN KEY(StorageID)

REFERENCES Storage(StorageID)

ON UPDATE NO ACTION

ON DELETE NO ACTION

GO

Связываем таблицу «Отгрузки» и «Накладные» по столбцу «BillID»:

ALTER TABLE Shipment ADD CONSTRAINT FK_Shipment_Bill

FOREIGN KEY(BillID)

REFERENCES Bill(BillID)

ON UPDATE NO ACTION

ON DELETE NO ACTION

GO

    1. Заполнение таблиц базы данных информацией

После успешного построения структуры базы данных в MS SQL Server – создания всех таблиц и ограничений, необходимо заполнить БД информацией. Множественное добавление записей в таблицу осуществляется с помощью операторов INSERT INTO и SELECT.

Запрос для добавления записей в таблицу «Покупатели»:

INSERT INTO Purchaser(INN,NamePurchaser,AdressPurchaser,PaymentAccount,Bank)

SELECT 1234567890,N'ОАО "Дриада"',N'ул.Гайдара 10',6300056,N'Сбербанк' UNION ALL

SELECT 1023456789,N' ОАО "Феникс"',N'ул.Фадеева 5',6300051,N'ВТБ' UNION ALL

SELECT 1092345678,N' ОАО "Биржа"',N'ул.Полевая 7',6300031,N'Trust' UNION ALL

SELECT 1098234567,N' ОАО "Афина"',N'ул.Революционная 153',6300073,N'Сбербанк' UNION ALL

SELECT 1098723456,N' ОАО "Франк"',N'ул.Киевская 2',6300071,N'ГазпромБанк'

GO

Заполнение таблицы «Договора»:

INSERT INTO Document(DateDocument,PurchaserID,SumDocument)

SELECT N'2012-04-09',1,150000 UNION ALL

SELECT N'2012-02-15',2,100000 UNION ALL

SELECT N'2012-09-25',3,200000 UNION ALL

SELECT N'2012-05-30',4,320000 UNION ALL

SELECT N'2012-07-01',5,250000

GO

Заполнение таблицы «Товары»:

INSERT INTO Product (NameProduct,Price,Unit,NDS)

SELECT N'Мука',50000,N'тонна',5 UNION ALL

SELECT N'Овсянка',50000,N'тонна',3 UNION ALL

SELECT N'Мука',50000,N'тонна',5 UNION ALL

SELECT N'Сахар',80000,N'тонна',8 UNION ALL

SELECT N'Крахмал',125000,N'тонна',7

GO

Заполнение таблицы «Погрузка»:

INSERT INTO Delivery(DocumentID,ProductID,DeliveryDate,MinDelivery,AmountDelivery,SumDelivery)

SELECT 1,1,N'2012-05-09',1,5,150000 UNION ALL

SELECT 2,2,N'2012-03-15',1,2,100000 UNION ALL

SELECT 3,3,N'2012-10-25',1,4,200000 UNION ALL

SELECT 4,4,N'2012-06-30',1,1,320000 UNION ALL

SELECT 5,5,N'2012-08-01',1,2,250000

GO

Заполнение таблицы «Склад»:

INSERT INTO Storage (NameStorage,ResponsiblePerson,AdressStorage)

SELECT N'Кубометр',N'Колесников В.А.',N'ул.Мичурина 1' UNION ALL

SELECT N'Сектор',N'Вершинина Т.П.',N'ул.Симферопольская 8' UNION ALL

SELECT N'Контейнер',N'Салов С.Н.',N'Волжский пр.103' UNION ALL

SELECT N'Поле',N'Сизова А.К.',N'ул.Гая 71' UNION ALL

SELECT N'Топаз',N'Мельников Б.Г.',N'ул.Масленникова 7'

Go

Заполнение таблица «Накладная»:

INSERT INTO Bill (AccountBill,StorageID,DateShipment,DocumentID,SumBill)

SELECT 5185,1,N'2012-09-05',1,150000 UNION ALL

SELECT 5731,2,N'2012-03-16',2,100000 UNION ALL

SELECT 3945,3,N'2012-08-25',3,200000 UNION ALL

SELECT 2147,4,N'2012-07-01',4,320000 UNION ALL

SELECT 6573,5,N'2012-08-02',5,250000

GO

Заполнение таблица «Отгрузка»:

INSERT INTO Shipment (PurchaserID,DocumentID,ProductID,StorageID,BillID)

SELECT 1,1,1,1,1 UNION ALL

SELECT 2,2,2,2,2 UNION ALL

SELECT 3,3,3,3,3 UNION ALL

SELECT 4,4,4,4,4 UNION ALL

SELECT 5,5,5,5,5

GO