
Курсач бази даних готельного комплексу / CREATE TABLE Человек
.docxCREATE TABLE Человек
(
ЧеловекИдн INT IDENTITY(1,1)NOT NULL
PRIMARY KEY CLUSTERED,
Имя VARCHAR(50)NOT NULL,
Фамилия VARCHAR(50) NOT NULL,
Адрес VARCHAR(50) NOT NULL,
)
GO
CREATE TABLE Страна
(
СтранаИдн INT IDENTITY(1, 1) NOT NULL
CONSTRAINT PK_СтранаИдн
PRIMARY KEY CLUSTERED,
Описание VARCHAR(50) NOT NULL
)
GO
CREATE TABLE Город
(
ГородИдн INT IDENTITY(1, 1) NOT NULL
CONSTRAINT PK_ГородИдн
PRIMARY KEY CLUSTERED,
Описание VARCHAR(50) NOT NULL
)
GO
CREATE TABLE ТипАдреса
(
ТипАдресаИдн INT IDENTITY(1, 1) NOT NULL
CONSTRAINT PK_ТипАдресаИдн
PRIMARY KEY CLUSTERED,
Описание VARCHAR(50) NOT NULL
)
GO
CREATE TABLE Адрес
(
PRIMARY KEY CLUSTERED(ЧеловекИдн,ТипАдресаИдн,ГородИдн,СтранаИдн),
ЧеловекИдн INT IDENTITY(1,1)NOT NULL,
ТипАдресаИдн INT NOT NULL,
ГородИдн INT NOT NULL,
СтранаИдн INT NOT NULL,
Адрес VARCHAR(50)NOT NULL,
CONSTRAINT FK_Адрес_Человек
FOREIGN KEY (ЧеловекИдн)
REFERENCES Человек(ЧеловекИдн),
CONSTRAINT FK_Адрес_ТипАдреса
FOREIGN KEY (ТипАдресаИдн)
REFERENCES ТипАдреса(ТипАдресаИдн),
CONSTRAINT FK_Адрес_Город
FOREIGN KEY (ГородИдн)
REFERENCES Город(ГородИдн),
CONSTRAINT FK_Адрес_Страна
FOREIGN KEY (СтранаИдн)
REFERENCES Страна(СтранаИдн)
)
GO
CREATE TABLE Должность
(
ДолжностьИдн INT IDENTITY(1, 1) NOT NULL
CONSTRAINT PK_ДолжностьИдн
PRIMARY KEY CLUSTERED,
Описание VARCHAR (50) NOT NULL
)
GO
CREATE TABLE Работник
(
РаботникИдн INT IDENTITY(1, 1) NOT NULL
CONSTRAINT PK_РаботникИдн
PRIMARY KEY CLUSTERED (РаботникИдн),
ЧеловекИдн INT NOT NULL,
ДолжностьИдн INT NOT NULL,
Зарплата VARCHAR(50) NOT NULL,
CONSTRAINT FK_Работник_Человек
FOREIGN KEY (ЧеловекИдн)
REFERENCES Человек(ЧеловекИдн),
CONSTRAINT FK_Работник_Должность
FOREIGN KEY (ДолжностьИдн)
REFERENCES Должность(ДолжностьИдн),
)
GO
CREATE TABLE Клиент
(
КлиентИдн INT IDENTITY(1,1)NOT NULL
CONSTRAINT PK_КлиентИдн
PRIMARY KEY CLUSTERED,
ЧеловекИдн INT NOT NULL,
АдресИдн INT NOT NULL,
ЗаказИдн INT NOT NULL,
Статус VARCHAR(50) NOT NULL
CONSTRAINT FK_Клиент_Человек
FOREIGN KEY (ЧеловекИдн)
REFERENCES Человек(ЧеловекИдн)
)
GO
CREATE TABLE ТипКомнаты
(
ТипКомнатыИдн INT IDENTITY(1, 1) NOT NULL
CONSTRAINT PK_ТипОплатыИдн
PRIMARY KEY CLUSTERED,
Описание VARCHAR (50) NOT NULL,
ДолжностьИдн INT NOT NULL,
РаботникИдн INT NOT NULL,
CONSTRAINT FK_ТипКомнаты_Работник
FOREIGN KEY (РаботникИдн)
REFERENCES Работник(РаботникИдн)
)
GO
CREATE TABLE Комфортабельность
(
КомфортабельностьИдн INT IDENTITY(1, 1) NOT NULL
CONSTRAINT PK_КомфортабельностьИдн
PRIMARY KEY CLUSTERED,
Описание VARCHAR (50) NOT NULL
)
GO
CREATE TABLE Оплата
(
ОплатаИДН INT IDENTITY(1, 1) NOT NULL
CONSTRAINT PK_ОплатаИдн
PRIMARY KEY CLUSTERED,
Описание VARCHAR (50) NOT NULL
)
GO
CREATE TABLE Заказ
(
PRIMARY KEY CLUSTERED (ТипКомнатыИдн,КлиентИдн,КомфортабельностьИдн,ОплатаИдн ),
ТипКомнатыИдн INT NOT NULL,
КлиентИдн INT NOT NULL,
КомфортабельностьИдн INT NOT NULL,
ОплатаИдн INT NOT NULL,
ВремяПроживания DATETIME NOT NULL
CONSTRAINT FK_Заказ_ТипКомнаты
FOREIGN KEY (ТипКомнатыИдн)
REFERENCES ТипКомнаты(ТипКомнатыИдн),
CONSTRAINT FK_Заказ_Клиент
FOREIGN KEY (КлиентИдн)
REFERENCES Клиент(КлиентИдн),
CONSTRAINT FK_Заказ_Комфортабельность
FOREIGN KEY (КомфортабельностьИдн)
REFERENCES Комфортабельность(КомфортабельностьИдн),
CONSTRAINT FK_Заказ_Оплата
FOREIGN KEY (ОплатаИдн)
REFERENCES Оплата(ОплатаИдн)
)
GO
CREATE UNIQUE NONCLUSTERED INDEX IDX_Работник_Человек
ON Работник(ЧеловекИдн)
GO
CREATE UNIQUE NONCLUSTERED INDEX IDX_Заказ_Комфортабельность
ON Заказ(КомфортабельностьИдн)
GO
CREATE UNIQUE NONCLUSTERED INDEX IDX_Заказ_Оплата
ON Заказ(ОплатаИдн)