Загрузка данных
-- ============================================
-- БАЗА ДАННЫХ "ПРОКАТ АВТОМОБИЛЕЙ"
-- ============================================
-- 1. СТРАНА
CREATE TABLE [Страна]
(
[Код страны] INT NOT NULL,
[Название] VARCHAR(100) NOT NULL,
CONSTRAINT [PK_Страна]
PRIMARY KEY ([Код страны])
);
-- 2. ОФИС ПРОКАТА
CREATE TABLE [Офис проката]
(
[Код офиса] INT NOT NULL,
[Город] VARCHAR(100) NOT NULL,
[Адрес] VARCHAR(200) NOT NULL,
[Код страны] INT NOT NULL,
CONSTRAINT [PK_ОфисПроката]
PRIMARY KEY ([Код офиса]),
CONSTRAINT [FK_Офис_Страна]
FOREIGN KEY ([Код страны])
REFERENCES [Страна]([Код страны])
);
-- 3. КЛИЕНТ
CREATE TABLE [Клиент]
(
[Код клиента] INT NOT NULL,
[Фамилия] VARCHAR(50) NOT NULL,
[Имя] VARCHAR(50) NOT NULL,
[Отчество] VARCHAR(50) NULL,
[Город] VARCHAR(100) NOT NULL,
[Адрес] VARCHAR(200) NOT NULL,
[Водительское удостоверение] VARCHAR(30) NULL,
[Код страны] INT NOT NULL,
CONSTRAINT [PK_Клиент]
PRIMARY KEY ([Код клиента]),
CONSTRAINT [UQ_Клиент_ВУ]
UNIQUE ([Водительское удостоверение]),
CONSTRAINT [FK_Клиент_Страна]
FOREIGN KEY ([Код страны])
REFERENCES [Страна]([Код страны])
);
-- 4. КАТЕГОРИЯ
CREATE TABLE [Категория]
(
[Код категории] INT NOT NULL,
[Название] VARCHAR(100) NOT NULL,
[Количество мест] INT NOT NULL,
CONSTRAINT [PK_Категория]
PRIMARY KEY ([Код категории])
);
-- 5. ДЕНЕЖНАЯ ЕДИНИЦА
CREATE TABLE [Денежная единица]
(
[Код валюты] INT NOT NULL,
[Название] VARCHAR(50) NOT NULL,
[Код страны] INT NOT NULL,
CONSTRAINT [PK_ДенежнаяЕдиница]
PRIMARY KEY ([Код валюты]),
CONSTRAINT [UQ_ДенежнаяЕдиница]
UNIQUE ([Название], [Код страны]),
CONSTRAINT [FK_Валюта_Страна]
FOREIGN KEY ([Код страны])
REFERENCES [Страна]([Код страны])
);
-- 6. ТРАНСПОРТНОЕ СРЕДСТВО
CREATE TABLE [Транспортное средство]
(
[Код ТС] INT NOT NULL,
[Код категории] INT NOT NULL,
[Стоимость проката] DECIMAL(10,2) NOT NULL,
[Марка] VARCHAR(50) NOT NULL,
[Модель] VARCHAR(50) NOT NULL,
[Цвет] VARCHAR(30) NOT NULL,
[Состояние] VARCHAR(50) NOT NULL,
[Код валюты] INT NOT NULL,
CONSTRAINT [PK_ТранспортноеСредство]
PRIMARY KEY ([Код ТС]),
CONSTRAINT [FK_ТС_Категория]
FOREIGN KEY ([Код категории])
REFERENCES [Категория]([Код категории]),
CONSTRAINT [FK_ТС_Валюта]
FOREIGN KEY ([Код валюты])
REFERENCES [Денежная единица]([Код валюты])
);
-- 7. ДОГОВОР АРЕНДЫ
CREATE TABLE [Договор аренды]
(
[Номер договора] INT NOT NULL,
[Код офиса] INT NOT NULL,
[Код офиса сдачи] INT NULL,
[Дата оформления] DATE NOT NULL,
[Дата оплаты] DATE NULL,
[Срок аренды] INT NOT NULL,
[Дата начала аренды] DATE NOT NULL,
[Фактическая дата окончания аренды] DATE NULL,
[Менеджер] VARCHAR(100) NOT NULL,
[Телефон] VARCHAR(20) NULL,
[Договор аннулирован] BIT NOT NULL,
[Код клиента] INT NOT NULL,
[Код ТС] INT NOT NULL,
CONSTRAINT [PK_ДоговорАренды]
PRIMARY KEY ([Номер договора]),
CONSTRAINT [FK_Договор_Офис]
FOREIGN KEY ([Код офиса])
REFERENCES [Офис проката]([Код офиса]),
CONSTRAINT [FK_Договор_ОфисСдачи]
FOREIGN KEY ([Код офиса сдачи])
REFERENCES [Офис проката]([Код офиса]),
CONSTRAINT [FK_Договор_Клиент]
FOREIGN KEY ([Код клиента])
REFERENCES [Клиент]([Код клиента]),
CONSTRAINT [FK_Договор_ТС]
FOREIGN KEY ([Код ТС])
REFERENCES [Транспортное средство]([Код ТС])
);
-- 8. ДОПОЛНИТЕЛЬНЫЕ УСЛОВИЯ АРЕНДЫ
CREATE TABLE [Дополнительные условия аренды]
(
[Номер записи] INT NOT NULL,
[Условие] VARCHAR(255) NOT NULL,
[Код валюты] INT NOT NULL,
[Стоимость] DECIMAL(10,2) NOT NULL,
CONSTRAINT [PK_ДопУсловия]
PRIMARY KEY ([Номер записи]),
CONSTRAINT [FK_ДопУсловия_Валюта]
FOREIGN KEY ([Код валюты])
REFERENCES [Денежная единица]([Код валюты])
);
-- 9. УТОЧНЕНИЕ ДОГОВОРА
CREATE TABLE [Уточнение договора]
(
[Номер договора] INT NOT NULL,
[Номер записи] INT NOT NULL,
[Коэффициент] DECIMAL(6,2) NOT NULL,
CONSTRAINT [PK_УточнениеДоговора]
PRIMARY KEY ([Номер договора], [Номер записи]),
CONSTRAINT [FK_Уточнение_Договор]
FOREIGN KEY ([Номер договора])
REFERENCES [Договор аренды]([Номер договора]),
CONSTRAINT [FK_Уточнение_Условие]
FOREIGN KEY ([Номер записи])
REFERENCES [Дополнительные условия аренды]([Номер записи])
);
-- 10. ПЛАТЕЖНЫЙ ДОКУМЕНТ
CREATE TABLE [Платежный документ]
(
[Номер документа] INT NOT NULL,
[Номер договора] INT NOT NULL,
[Тип документа] VARCHAR(50) NOT NULL,
[Дата оплаты] DATE NOT NULL,
[Сумма] DECIMAL(12,2) NOT NULL,
[Код валюты] INT NOT NULL,
CONSTRAINT [PK_ПлатежныйДокумент]
PRIMARY KEY ([Номер документа]),
CONSTRAINT [FK_Платеж_Договор]
FOREIGN KEY ([Номер договора])
REFERENCES [Договор аренды]([Номер договора]),
CONSTRAINT [FK_Платеж_Валюта]
FOREIGN KEY ([Код валюты])
REFERENCES [Денежная единица]([Код валюты])
);
-- 11. КУРС ДЕНЕЖНОЙ ЕДИНИЦЫ
CREATE TABLE [Курс денежной единицы]
(
[Номер записи] INT NOT NULL,
[Код валюты] INT NOT NULL,
[Дата] DATE NOT NULL,
[Значение курса] DECIMAL(12,4) NOT NULL,
CONSTRAINT [PK_КурсВалюты]
PRIMARY KEY ([Номер записи]),
CONSTRAINT [FK_Курс_Валюта]
FOREIGN KEY ([Код валюты])
REFERENCES [Денежная единица]([Код валюты])
);