Загрузка данных
--9-- Страна
USE [car-rental-mssql];
GO
CREATE TABLE [901_Страна] (
[Код страны] INT IDENTITY(1,1) NOT NULL,
[Название] NVARCHAR(100) NOT NULL,
CONSTRAINT [PK_Страна] PRIMARY KEY CLUSTERED ([Код страны] ASC)
);
GO
--9-- Денежная единица
CREATE TABLE [902_Денежная единица] (
[Код валюты] INT IDENTITY(1,1) NOT NULL,
[Название] NVARCHAR(100) NOT NULL,
[Код страны] INT NULL,
CONSTRAINT [PK_Денежная единица] PRIMARY KEY CLUSTERED ([Код валюты] ASC),
CONSTRAINT [UQ_Денежная единица_Название] UNIQUE ([Название]),
CONSTRAINT [AK_Денежная единица_Страна] UNIQUE ([Код страны]),
CONSTRAINT [FK_Денежная единица_Страна] FOREIGN KEY ([Код страны])
REFERENCES [Страна] ([Код страны])
);
GO
--9-- Курс денежной единицы
CREATE TABLE [903_Курс денежной единицы] (
[Номер записи] INT IDENTITY(1,1) NOT NULL,
[in_Код валюты] INT NULL,
[for_Код валюты] INT NULL,
[Дата] DATE NULL,
[Значение курса] DECIMAL(18,4) NULL,
CONSTRAINT [PK_Курс денежной единицы] PRIMARY KEY CLUSTERED ([Номер записи] ASC),
CONSTRAINT [FK_Курс_in] FOREIGN KEY ([in_Код валюты])
REFERENCES [Денежная единица] ([Код валюты]),
CONSTRAINT [FK_Курс_for] FOREIGN KEY ([for_Код валюты])
REFERENCES [Денежная единица] ([Код валюты])
);
GO
--9-- Офис проката
CREATE TABLE [904_Офис проката] (
[Код офиса] INT IDENTITY(1,1) NOT NULL,
[Город] NVARCHAR(100) NULL,
[Адрес] NVARCHAR(255) NULL,
[Код страны] INT NULL,
CONSTRAINT [PK_Офис проката] PRIMARY KEY CLUSTERED ([Код офиса] ASC),
CONSTRAINT [FK_Офис проката_Страна] FOREIGN KEY ([Код страны])
REFERENCES [Страна] ([Код страны])
);
GO
--9-- Клиент
CREATE TABLE [905_Клиент] (
[Код клиента] INT IDENTITY(1,1) NOT NULL,
[Фамилия] NVARCHAR(100) NOT NULL,
[Имя] NVARCHAR(100) NOT NULL,
[Отчество] NVARCHAR(100) NULL,
[Город] NVARCHAR(100) NULL,
[Адрес] NVARCHAR(255) NULL,
[Водительское удостоверение] NVARCHAR(50) NOT NULL,
[Код страны] INT NULL,
CONSTRAINT [PK_Клиент] PRIMARY KEY CLUSTERED ([Код клиента] ASC),
CONSTRAINT [UQ_Клиент_ВУ] UNIQUE ([Водительское удостоверение]),
CONSTRAINT [FK_Клиент_Страна] FOREIGN KEY ([Код страны])
REFERENCES [Страна] ([Код страны])
);
GO
--9-- Категория
CREATE TABLE [906_Категория] (
[Код категории] INT IDENTITY(1,1) NOT NULL,
[Название] NVARCHAR(100) NOT NULL,
[Количество мест] INT NULL,
CONSTRAINT [PK_Категория] PRIMARY KEY CLUSTERED ([Код категории] ASC),
CONSTRAINT [UQ_Категория_Название] UNIQUE ([Название])
);
GO
--9-- Транспортное средство
CREATE TABLE [907_Транспортное средство] (
[Код ТС] INT IDENTITY(1,1) NOT NULL,
[Код категории] INT NULL,
[Стоимость проката] DECIMAL(18,2) NULL,
[Марка] NVARCHAR(100) NULL,
[Модель] NVARCHAR(100) NULL,
[Цвет] NVARCHAR(50) NULL,
[Госномер] NVARCHAR(20) NOT NULL,
[Код валюты] INT NULL,
CONSTRAINT [PK_Транспортное средство] PRIMARY KEY CLUSTERED ([Код ТС] ASC),
CONSTRAINT [UQ_ТС_Госномер] UNIQUE ([Госномер]),
CONSTRAINT [FK_ТС_Категория] FOREIGN KEY ([Код категории])
REFERENCES [Категория] ([Код категории]),
CONSTRAINT [FK_ТС_Валюта] FOREIGN KEY ([Код валюты])
REFERENCES [Денежная единица] ([Код валюты])
);
GO
--9-- Договор аренды
CREATE TABLE [908_Договор аренды] (
[Номер договора] INT IDENTITY(1,1) NOT NULL,
[get_Код офиса] INT NULL,
[return_Код офиса] INT NULL,
[Дата оформления] DATE NULL,
[Дата оплаты] DATE NULL,
[Срок аренды] INT NULL,
[Дата начала аренды] DATE NULL,
[Фактическая дата окончания аренды] DATE NULL,
[Менеджер] NVARCHAR(150) NULL,
[Телефон] NVARCHAR(50) NULL,
[Договор аннулирован] BIT NULL,
[Код клиента] INT NULL,
[Код ТС] INT NULL,
CONSTRAINT [PK_Договор аренды] PRIMARY KEY CLUSTERED ([Номер договора] ASC),
CONSTRAINT [FK_Договор_ОфисВыдачи] FOREIGN KEY ([get_Код офиса])
REFERENCES [Офис проката] ([Код офиса]),
CONSTRAINT [FK_Договор_ОфисВозврата] FOREIGN KEY ([return_Код офиса])
REFERENCES [Офис проката] ([Код офиса]),
CONSTRAINT [FK_Договор_Клиент] FOREIGN KEY ([Код клиента])
REFERENCES [Клиент] ([Код клиента]),
CONSTRAINT [FK_Договор_ТС] FOREIGN KEY ([Код ТС])
REFERENCES [Транспортное средство] ([Код ТС])
);
GO
--9-- Платежный документ
CREATE TABLE [909_Платежный документ] (
[Номер документа] INT IDENTITY(1,1) NOT NULL,
[Номер договора] INT NULL,
[Тип документа] NVARCHAR(100) NULL,
[Дата оплаты] DATE NULL,
[Сумма] DECIMAL(18,2) NULL,
[Код валюты] INT NULL,
CONSTRAINT [PK_Платежный документ] PRIMARY KEY CLUSTERED ([Номер документа] ASC),
CONSTRAINT [FK_Платежный_Договор] FOREIGN KEY ([Номер договора])
REFERENCES [Договор аренды] ([Номер договора]),
CONSTRAINT [FK_Платежный_Валюта] FOREIGN KEY ([Код валюты])
REFERENCES [Денежная единица] ([Код валюты])
);
GO
--9-- Дополнительные условия аренды
CREATE TABLE [910_Дополнительные условия аренды] (
[Номер записи] INT IDENTITY(1,1) NOT NULL,
[Условие] NVARCHAR(255) NULL,
[Код валюты] INT NULL,
[Стоимость] DECIMAL(18,2) NULL,
CONSTRAINT [PK_Доп условия аренды] PRIMARY KEY CLUSTERED ([Номер записи] ASC),
CONSTRAINT [FK_ДопУсловия_Валюта] FOREIGN KEY ([Код валюты])
REFERENCES [Денежная единица] ([Код валюты])
);
GO
--9-- Уточнение договора
CREATE TABLE [911_Уточнение договора] (
[Номер договора] INT NOT NULL,
[Номер записи] INT NOT NULL,
[Коэффициент] DECIMAL(10,4) NULL,
CONSTRAINT [PK_Уточнение договора] PRIMARY KEY CLUSTERED ([Номер договора] ASC, [Номер записи] ASC),
CONSTRAINT [FK_Уточнение_Договор] FOREIGN KEY ([Номер договора])
REFERENCES [Договор аренды] ([Номер договора]),
CONSTRAINT [FK_Уточнение_ДопУсловия] FOREIGN KEY ([Номер записи])
REFERENCES [Дополнительные условия аренды] ([Номер записи])
);
GO