Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovik.doc
Скачиваний:
7
Добавлен:
31.07.2019
Размер:
181.25 Кб
Скачать

Связи между сущностями:

• Каждый клиент может купить товары, если они есть на складе в любом количестве и в любом сочетании.

• Каждый клиент может быть "постоянным", т.е. при любой покупке он получает скидку на стоимость сделки 5%.

• Каждому заказу соответствует суммарная стоимость, в зависимости от которой вычисляется дополнительная скидка.

Исполнители:

Сущность

Описание

Клиент магазина

Каждый покупатель, который зарегистрировался в нашем интернет-магазине

Работник магазина

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

Действия:

Название

Описание

Покупка товара

Покупка товара

Запрос о скидке

Клиент узнает о наличии персональной скидки

Запрос наличия на складе

Клиент или работник магазина узнают о наличии неоторого товара на складе

Ввод личных данных

Заполнение пользователем личных данных

Запрос данных пользователя

Запрос пользовательских данных работником магазина

Фиксирование данных от сделки

Фиксирование работником даннных о проведенной сделке

Поиск информации

Поиск информации о приобретаемых товарах по клиенту, и о клиентах по товару и т.п.

Были определены следующие домены:

Название

Описание

Тип

CustomerID

Номер клиента

int

PhoneNum

Телефон клиента

int

Email

Почтовый адрес

varchar(50)

Name

Имя

varchar(30)

Surname

Фамилия

varchar(40)

Address

Адрес

varchar(60)

IsFriend

Постоянный ли клиент

bit

PurchasementID

Номер сделки

int

PurchasementDate

Дата сделки

datetime

DeliveryDate

Дата доставки

datetime

BeginningCost

Начальная цена

int

FinalCost

Цена с учетом скидок

int

PurchProdID

Номер промежуточной сделки

int

Quantity

Количество этого вида товара в промежуточной сделке

int

TotalCost

Цена всех единиц товара в промежуточной сделке

int

ShopID

Номер магазина

int

ShopName

Название магазина

varchar(50)

ProductID

Номер товара

int

Quantity

Количество товара на складе

int

Price

Цена единицы товара

int

ProductName

Название товара

varchar(50)

Структуры базы данных:

Концептуальная ER-диаграмма

Физическая ER-диаграмма

Структура базы данных в виде полного описания всех таблиц с их полями и командами их создания:

  1. Таблица Клиентов:

В таблице хранится информация о клиенте: имя, фамилия, телефон, адрес, почтовый адрес, является ли он постоянным клиентом.

Команда создания:

CREATE TABLE [dbo].[customer](

[CustomerID] [int] IDENTITY(1,1) NOT NULL,

[PhoneNum] [int] NOT NULL,

[Email] [varchar](40) COLLATE Cyrillic_General_CI_AS NOT NULL,

[Name] [varchar](30) COLLATE Cyrillic_General_CI_AS NOT NULL,

[Surname] [varchar](50) COLLATE Cyrillic_General_CI_AS NOT NULL,

[Address] [varchar](50) COLLATE Cyrillic_General_CI_AS NOT NULL,

[IsFriend] [bit] NOT NULL,

CONSTRAINT [PK_customer] PRIMARY KEY CLUSTERED

(

[CustomerID] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

  1. Таблица Сделок:

В таблице хранится информация о сделках: номер килента, номер магазина, дата сделки, дата доставки, начальная стоимость, стоимость со скидками.

Команда создания:

CREATE TABLE [dbo].[Purchasement](

[PurchasementID] [int] IDENTITY(1,1) NOT NULL,

[CustomerID] [int] NOT NULL,

[ShopID] [int] NOT NULL,

[PurchasementDate] [datetime] NOT NULL,

[DeliveryDate] [datetime] NOT NULL,

[BeginningCost] AS ([dbo].[BegCost]([PurchasementID])),

[FinalCost] AS ([dbo].[FinCost]([PurchasementID],[CustomerID])),

CONSTRAINT [PK__Purchasement__145C0A3F] PRIMARY KEY CLUSTERED

(

[PurchasementID] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

ALTER TABLE [dbo].[Purchasement] WITH CHECK ADD CONSTRAINT [FK__Purchasem__Custo__15502E78] FOREIGN KEY([CustomerID])

REFERENCES [dbo].[customer] ([CustomerID])

GO

ALTER TABLE [dbo].[Purchasement] WITH CHECK ADD CONSTRAINT [FK__Purchasem__ShopI__164452B1] FOREIGN KEY([ShopID])

REFERENCES [dbo].[Shop] ([ShopID])

GO

  1. Таблица Промежуточной сделки:

В таблице хранится информация о промежуточной сделке: номер товара, приобретаемое количество, суммарная стоимость, номер основной сделки.

Команда создания:

CREATE TABLE [dbo].[PurchProd](

[PurchProdID] [int] IDENTITY(1,1) NOT NULL,

[ProductID] [int] NOT NULL,

[Quantity] [int] NOT NULL,

[TotalCost] AS ([dbo].[CostOfCouple]([ProductID],[Quantity])),

[PurchasementID] [int] NULL,

CONSTRAINT [PK__PurchProd__0AD2A005] PRIMARY KEY CLUSTERED

(

[PurchProdID] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

GO

USE [Labs]

GO

ALTER TABLE [dbo].[PurchProd] WITH CHECK ADD CONSTRAINT [FK__PurchProd__Produ__0BC6C43E] FOREIGN KEY([ProductID])

REFERENCES [dbo].[Warehouse] ([ProductID])

GO

ALTER TABLE [dbo].[PurchProd] WITH CHECK ADD CONSTRAINT [FK__PurchProd__Purch__3F466844] FOREIGN KEY([PurchasementID])

REFERENCES [dbo].[Purchasement] ([PurchasementID])

  1. Таблица Магазинов:

В случае если понадобится введение нескольких магазинов; содержит информацию название магазина.

Команда создания:

CREATE TABLE [dbo].[Shop](

[ShopID] [int] IDENTITY(1,1) NOT NULL,

[ShopName] [varchar](50) COLLATE Cyrillic_General_CI_AS NOT NULL,

CONSTRAINT [PK_Shop] PRIMARY KEY CLUSTERED

(

[ShopID] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

  1. Таблица Товаров на складе:

В таблице хранится информация о товарах на складе: название, количество на складе, стоимость единицы товара.

Команда создания:

CREATE TABLE [dbo].[Warehouse](

[ProductID] [int] IDENTITY(1,1) NOT NULL,

[Quantity] [int] NULL,

[Price] [int] NOT NULL,

[ProductName] [varchar](50) COLLATE Cyrillic_General_CI_AS NOT NULL,

CONSTRAINT [PK_Warehouse] PRIMARY KEY CLUSTERED

(

[ProductID] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]