refactor SQL DB CREATE for better maintainance

This commit is contained in:
Ivan Hörler 2018-07-29 09:15:11 +02:00
parent 3d37c7a678
commit 0a4674d9fe
1 changed files with 106 additions and 78 deletions

View File

@ -107,7 +107,9 @@ CREATE TABLE [dbo].[Patient] (
[BirthDate] datetime NOT NULL, [BirthDate] datetime NOT NULL,
[Street] nvarchar(max) NOT NULL, [Street] nvarchar(max) NOT NULL,
[City] nvarchar(max) NOT NULL, [City] nvarchar(max) NOT NULL,
[Region] nvarchar(max) NOT NULL [Region] nvarchar(max) NOT NULL,
CONSTRAINT [PK_Patient]
PRIMARY KEY CLUSTERED ([PatientId] ASC)
); );
GO GO
@ -118,7 +120,9 @@ CREATE TABLE [dbo].[Doctor] (
[FirstName] nvarchar(max) NOT NULL, [FirstName] nvarchar(max) NOT NULL,
[LastName] nvarchar(max) NOT NULL, [LastName] nvarchar(max) NOT NULL,
[DoctorOrigin] nvarchar(max) NOT NULL, [DoctorOrigin] nvarchar(max) NOT NULL,
[Region] nvarchar(max) NOT NULL [Region] nvarchar(max) NOT NULL,
CONSTRAINT [PK_Doctor]
PRIMARY KEY CLUSTERED ([DoctorId] ASC)
); );
GO GO
@ -129,7 +133,19 @@ CREATE TABLE [dbo].[Origin] (
[Name] nvarchar(max) NOT NULL, [Name] nvarchar(max) NOT NULL,
[Food] nvarchar(max) NOT NULL, [Food] nvarchar(max) NOT NULL,
[Street] nvarchar(max) NOT NULL, [Street] nvarchar(max) NOT NULL,
[City] nvarchar(max) NOT NULL [City] nvarchar(max) NOT NULL,
CONSTRAINT [PK_Origin]
PRIMARY KEY CLUSTERED ([OriginId] ASC)
);
GO
-- Creating table 'Result'
CREATE TABLE [dbo].[Result] (
[ResultId] int IDENTITY(1,1) NOT NULL,
[ResultUid] nvarchar(max) ,
[Name] nvarchar(max) NOT NULL,
CONSTRAINT [PK_Result]
PRIMARY KEY CLUSTERED ([ResultId] ASC)
); );
GO GO
@ -139,15 +155,21 @@ CREATE TABLE [dbo].[Exam] (
[ExamUid] nvarchar(max) , [ExamUid] nvarchar(max) ,
[DoctorId] int NOT NULL, [DoctorId] int NOT NULL,
[PatientId] int NOT NULL, [PatientId] int NOT NULL,
[ResultId] int NOT NULL [ResultId] int NOT NULL,
); CONSTRAINT [PK_Exam]
GO PRIMARY KEY CLUSTERED ([ExamId] ASC),
CONSTRAINT [FK_ResultExam]
-- Creating table 'Result' FOREIGN KEY ([ResultId])
CREATE TABLE [dbo].[Result] ( REFERENCES [dbo].[Result]([ResultId])
[ResultId] int IDENTITY(1,1) NOT NULL, ON DELETE NO ACTION ON UPDATE NO ACTION,
[ResultUid] nvarchar(max) , CONSTRAINT [FK_DoctorExam]
[Name] nvarchar(max) NOT NULL, FOREIGN KEY ([DoctorId])
REFERENCES [dbo].[Doctor]([DoctorId])
ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT [FK_PatientExam]
FOREIGN KEY ([PatientId])
REFERENCES [dbo].[Patient]([PatientId])
ON DELETE NO ACTION ON UPDATE NO ACTION
); );
GO GO
@ -156,97 +178,103 @@ CREATE TABLE [dbo].[Origin_Exam] (
[Origin_ExamId] int IDENTITY(1,1) NOT NULL, [Origin_ExamId] int IDENTITY(1,1) NOT NULL,
[Origin_ExamUid] nvarchar(max) , [Origin_ExamUid] nvarchar(max) ,
[OriginId] int NOT NULL, [OriginId] int NOT NULL,
[ExamId] int NOT NULL [ExamId] int NOT NULL,
CONSTRAINT [PK_Origin_Exam]
PRIMARY KEY CLUSTERED ([Origin_ExamId] ASC),
CONSTRAINT [FK_Origin]
FOREIGN KEY ([OriginId])
REFERENCES [dbo].[Origin] ([OriginId])
ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT [FK_Exam]
FOREIGN KEY ([ExamId])
REFERENCES [dbo].[Exam]([ExamId])
ON DELETE NO ACTION ON UPDATE NO ACTION
); );
GO GO
-- --------------------------------------------------
PRINT 'Creating all PRIMARY KEY constraints'; ---- --------------------------------------------------
-- -------------------------------------------------- --PRINT 'Creating all PRIMARY KEY constraints';
---- --------------------------------------------------
-- Creating primary key on [Origin_ExamId] in table 'Origin_Exam' -- Creating primary key on [Origin_ExamId] in table 'Origin_Exam'
ALTER TABLE [dbo].[Origin_Exam] --ALTER TABLE [dbo].[Origin_Exam]
ADD CONSTRAINT [PK_Origin_Exam] --ADD CONSTRAINT [PK_Origin_Exam]
PRIMARY KEY CLUSTERED ([Origin_ExamId] ASC); -- PRIMARY KEY CLUSTERED ([Origin_ExamId] ASC);
GO --GO
-- Creating primary key on [PatientId] in table 'Patient' -- Creating primary key on [PatientId] in table 'Patient'
ALTER TABLE [dbo].[Patient] --ALTER TABLE [dbo].[Patient]
ADD CONSTRAINT [PK_Patient] --ADD CONSTRAINT [PK_Patient]
PRIMARY KEY CLUSTERED ([PatientId] ASC); -- PRIMARY KEY CLUSTERED ([PatientId] ASC);
GO --GO
-- Creating primary key on [DoctorId] in table 'Doctor' -- Creating primary key on [DoctorId] in table 'Doctor'
ALTER TABLE [dbo].[Doctor] --ALTER TABLE [dbo].[Doctor]
ADD CONSTRAINT [PK_Doctor] --ADD CONSTRAINT [PK_Doctor]
PRIMARY KEY CLUSTERED ([DoctorId] ASC); -- PRIMARY KEY CLUSTERED ([DoctorId] ASC);
GO --GO
-- Creating primary key on [OriginId] in table 'Origin' -- Creating primary key on [OriginId] in table 'Origin'
ALTER TABLE [dbo].[Origin] --ALTER TABLE [dbo].[Origin]
ADD CONSTRAINT [PK_Origin] --ADD CONSTRAINT [PK_Origin]
PRIMARY KEY CLUSTERED ([OriginId] ASC); -- PRIMARY KEY CLUSTERED ([OriginId] ASC);
GO --GO
-- Creating primary key on [ExamId] in table 'Exam' -- Creating primary key on [ExamId] in table 'Exam'
ALTER TABLE [dbo].[Exam] --ALTER TABLE [dbo].[Exam]
ADD CONSTRAINT [PK_Exam] --ADD CONSTRAINT [PK_Exam]
PRIMARY KEY CLUSTERED ([ExamId] ASC); -- PRIMARY KEY CLUSTERED ([ExamId] ASC);
GO --GO
-- Creating primary key on [ResultId] in table 'Result' -- Creating primary key on [ResultId] in table 'Result'
ALTER TABLE [dbo].[Result] --ALTER TABLE [dbo].[Result]
ADD CONSTRAINT [PK_Result] --ADD CONSTRAINT [PK_Result]
PRIMARY KEY CLUSTERED ([ResultId] ASC); -- PRIMARY KEY CLUSTERED ([ResultId] ASC);
GO --GO
-- -------------------------------------------------- ---- --------------------------------------------------
PRINT 'Creating all FOREIGN KEY constraints'; --PRINT 'Creating all FOREIGN KEY constraints';
-- -------------------------------------------------- ---- --------------------------------------------------
-- Creating foreign key on [ResultId] in table 'Exam' -- Creating foreign key on [ResultId] in table 'Exam'
ALTER TABLE [dbo].[Exam] --ALTER TABLE [dbo].[Exam]
ADD CONSTRAINT [FK_ResultExam] --ADD CONSTRAINT [FK_ResultExam]
FOREIGN KEY ([ResultId]) -- FOREIGN KEY ([ResultId])
REFERENCES [dbo].[Result] -- REFERENCES [dbo].[Result]([ResultId])
([ResultId]) -- ON DELETE NO ACTION ON UPDATE NO ACTION;
ON DELETE NO ACTION ON UPDATE NO ACTION; --GO
GO
-- Creating foreign key on [DoctorId] in table 'Exam' -- Creating foreign key on [DoctorId] in table 'Exam'
ALTER TABLE [dbo].[Exam] --ALTER TABLE [dbo].[Exam]
ADD CONSTRAINT [FK_DoctorExam] --ADD CONSTRAINT [FK_DoctorExam]
FOREIGN KEY ([DoctorId]) -- FOREIGN KEY ([DoctorId])
REFERENCES [dbo].[Doctor] -- REFERENCES [dbo].[Doctor]([DoctorId])
([DoctorId]) -- ON DELETE NO ACTION ON UPDATE NO ACTION;
ON DELETE NO ACTION ON UPDATE NO ACTION; --GO
GO
-- Creating foreign key on [PatientId] in table 'Exam' -- Creating foreign key on [PatientId] in table 'Exam'
ALTER TABLE [dbo].[Exam] --ALTER TABLE [dbo].[Exam]
ADD CONSTRAINT [FK_PatientExam] --ADD CONSTRAINT [FK_PatientExam]
FOREIGN KEY ([PatientId]) -- FOREIGN KEY ([PatientId])
REFERENCES [dbo].[Patient] -- REFERENCES [dbo].[Patient]([PatientId])
([PatientId]) -- ON DELETE NO ACTION ON UPDATE NO ACTION;
ON DELETE NO ACTION ON UPDATE NO ACTION; --GO
GO
-- Creating foreign key on [OriginId] in table 'Origin_Exam' -- Creating foreign key on [OriginId] in table 'Origin_Exam'
ALTER TABLE [dbo].[Origin_Exam] --ALTER TABLE [dbo].[Origin_Exam]
ADD CONSTRAINT [FK_Origin] --ADD CONSTRAINT [FK_Origin]
FOREIGN KEY ([OriginId]) -- FOREIGN KEY ([OriginId])
REFERENCES [dbo].[Origin] -- REFERENCES [dbo].[Origin] ([OriginId])
([OriginId]) -- ON DELETE NO ACTION ON UPDATE NO ACTION;
ON DELETE NO ACTION ON UPDATE NO ACTION; --GO
GO
-- Creating foreign key on [ExamId] in table 'Origin_Exam' -- Creating foreign key on [ExamId] in table 'Origin_Exam'
ALTER TABLE [dbo].[Origin_Exam] --ALTER TABLE [dbo].[Origin_Exam]
ADD CONSTRAINT [FK_Exam] --ADD CONSTRAINT [FK_Exam]
FOREIGN KEY ([ExamId]) -- FOREIGN KEY ([ExamId])
REFERENCES [dbo].[Exam] -- REFERENCES [dbo].[Exam]([ExamId])
([ExamId]) -- ON DELETE NO ACTION ON UPDATE NO ACTION;
ON DELETE NO ACTION ON UPDATE NO ACTION; --GO
GO
-- -------------------------------------------------- -- --------------------------------------------------
PRINT 'Creating all INDEXES'; PRINT 'Creating all INDEXES';
-- -------------------------------------------------- -- --------------------------------------------------