Загрузка данных


CREATE DATABASE [car-rental-mssql];
GO

USE [car-rental-mssql];
GO

CREATE TABLE [Страна7] (
    [Код страны] INT IDENTITY(1,1) NOT NULL,
    [Название] NVARCHAR(100) NOT NULL,
    CONSTRAINT [PK_Страна7] PRIMARY KEY CLUSTERED ([Код страны] ASC)
);
GO

CREATE TABLE [Денежная единица7] (
    [Код валюты] INT IDENTITY(1,1) NOT NULL,
    [Название] NVARCHAR(100) NOT NULL,
    [Код страны] INT NULL,
    CONSTRAINT [PK_Денежная единица7] PRIMARY KEY CLUSTERED ([Код валюты] ASC),
    CONSTRAINT [UQ_Денежная единица7_Название] UNIQUE ([Название]),
    CONSTRAINT [FK_Денежная единица7_Страна] FOREIGN KEY ([Код страны])
        REFERENCES [Страна7] ([Код страны])
);
GO

CREATE TABLE [Курс денежной единицы7] (
    [Номер записи] INT IDENTITY(1,1) NOT NULL,
    [in_Код валюты] INT NULL,
    [for_Код валюты] INT NULL,
    [Дата] DATE NULL,
    [Значение курса] DECIMAL(18,4) NULL,
    CONSTRAINT [PK_Курс денежной единицы7] PRIMARY KEY CLUSTERED ([Номер записи] ASC),
    CONSTRAINT [FK_Курс7_in] FOREIGN KEY ([in_Код валюты])
        REFERENCES [Денежная единица7] ([Код валюты]),
    CONSTRAINT [FK_Курс7_for] FOREIGN KEY ([for_Код валюты])
        REFERENCES [Денежная единица7] ([Код валюты])
);
GO

CREATE TABLE [Клиент7] (
    [Код клиента] 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_Клиент7] PRIMARY KEY CLUSTERED ([Код клиента] ASC),
    CONSTRAINT [UQ_Клиент7_ВУ] UNIQUE ([Водительское удостоверение]),
    CONSTRAINT [FK_Клиент7_Страна] FOREIGN KEY ([Код страны])
        REFERENCES [Страна7] ([Код страны])
);
GO

CREATE TABLE [Офис проката7] (
    [Код офиса] INT IDENTITY(1,1) NOT NULL,
    [Город] NVARCHAR(100) NULL,
    [Адрес] NVARCHAR(255) NULL,
    [Код страны] INT NULL,
    CONSTRAINT [PK_Офис проката7] PRIMARY KEY CLUSTERED ([Код офиса] ASC),
    CONSTRAINT [FK_Офис проката7_Страна] FOREIGN KEY ([Код страны])
        REFERENCES [Страна7] ([Код страны])
);
GO

CREATE TABLE [Категория7] (
    [Код категории] INT IDENTITY(1,1) NOT NULL,
    [Название] NVARCHAR(100) NOT NULL,
    [Количество мест] INT NULL,
    CONSTRAINT [PK_Категория7] PRIMARY KEY CLUSTERED ([Код категории] ASC),
    CONSTRAINT [UQ_Категория7_Название] UNIQUE ([Название])
);
GO

CREATE TABLE [Транспортное средство7] (
    [Код ТС] 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_Транспортное средство7] PRIMARY KEY CLUSTERED ([Код ТС] ASC),
    CONSTRAINT [UQ_ТС7_Госномер] UNIQUE ([Госномер]),
    CONSTRAINT [FK_ТС7_Категория] FOREIGN KEY ([Код категории])
        REFERENCES [Категория7] ([Код категории]),
    CONSTRAINT [FK_ТС7_Денежная единица] FOREIGN KEY ([Код валюты])
        REFERENCES [Денежная единица7] ([Код валюты])
);
GO

CREATE TABLE [Договор аренды7] (
    [Номер договора] INT IDENTITY(1,1) NOT NULL,
    [рег_Код офиса] INT NULL,
    [Код клиента] INT NULL,
    [Дата оформления] DATE NULL,
    [Дата оплаты] DATE NULL,
    [Срок аренды] INT NULL,
    [Дата начала аренды] DATE NULL,
    [Фактическая дата окончания аренды] DATE NULL,
    [Менеджер] NVARCHAR(150) NULL,
    [Телефон] NVARCHAR(50) NULL,
    [Договор аннулирован] BIT NULL,
    [Код ТС] INT NULL,
    CONSTRAINT [PK_Договор аренды7] PRIMARY KEY CLUSTERED ([Номер договора] ASC),
    CONSTRAINT [FK_Договор7_Офис_выдачи] FOREIGN KEY ([рег_Код офиса])
        REFERENCES [Офис проката7] ([Код офиса]),
    CONSTRAINT [FK_Договор7_Клиент] FOREIGN KEY ([Код клиента])
        REFERENCES [Клиент7] ([Код клиента]),
    CONSTRAINT [FK_Договор7_ТС] FOREIGN KEY ([Код ТС])
        REFERENCES [Транспортное средство7] ([Код ТС])
);
GO

CREATE TABLE [Платежный документ7] (
    [Номер документа] INT IDENTITY(1,1) NOT NULL,
    [Номер договора] INT NULL,
    [Тип документа] NVARCHAR(100) NULL,
    [Дата оплаты] DATE NULL,
    [Сумма] DECIMAL(18,2) NULL,
    [Код валюты] INT NULL,
    CONSTRAINT [PK_Платежный документ7] PRIMARY KEY CLUSTERED ([Номер документа] ASC),
    CONSTRAINT [FK_Платежный7_Договор] FOREIGN KEY ([Номер договора])
        REFERENCES [Договор аренды7] ([Номер договора]),
    CONSTRAINT [FK_Платежный7_Валюта] FOREIGN KEY ([Код валюты])
        REFERENCES [Денежная единица7] ([Код валюты])
);
GO

CREATE TABLE [Уточнение договора7] (
    [Номер договора] INT NOT NULL,
    [Номер записи] INT IDENTITY(1,1) NOT NULL,
    [Коэффициент] DECIMAL(10,4) NULL,
    CONSTRAINT [PK_Уточнение договора7] PRIMARY KEY CLUSTERED ([Номер записи] ASC),
    CONSTRAINT [FK_Уточнение7_Договор] FOREIGN KEY ([Номер договора])
        REFERENCES [Договор аренды7] ([Номер договора])
);
GO

CREATE TABLE [Дополнительные условия аренды7] (
    [Номер записи] INT IDENTITY(1,1) NOT NULL,
    CONSTRAINT [PK_Доп условия аренды7] PRIMARY KEY CLUSTERED ([Номер записи] ASC)
);
GO

CREATE TABLE [Условие7] (
    [Номер записи] INT IDENTITY(1,1) NOT NULL,
    [Код валюты] INT NULL,
    [Стоимость] DECIMAL(18,2) NULL,
    CONSTRAINT [PK_Условие7] PRIMARY KEY CLUSTERED ([Номер записи] ASC),
    CONSTRAINT [FK_Условие7_ДопУсловия] FOREIGN KEY ([Номер записи])
        REFERENCES [Дополнительные условия аренды7] ([Номер записи]),
    CONSTRAINT [FK_Условие7_Валюта] FOREIGN KEY ([Код валюты])
        REFERENCES [Денежная единица7] ([Код валюты])
);
GO