USE [DormitoryManagement] GO /****** Object: Table [dbo].[Account] Script Date: 4/2/2021 10:38:41 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Account]( [Id] [int] IDENTITY(1,1) NOT NULL, [Username] [nvarchar](255) NOT NULL, [Password] [nvarchar](255) NOT NULL, [IsManager] [bit] NOT NULL, [IsActive] [bit] NOT NULL, CONSTRAINT [PK_Account] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[Bed] Script Date: 4/2/2021 10:38:41 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Bed]( [Id] [int] IDENTITY(1,1) NOT NULL, [RoomId] [int] NOT NULL, [BedNumber] [tinyint] NOT NULL, [IsAvailable] [bit] NOT NULL, CONSTRAINT [PK_Bed] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[Dom] Script Date: 4/2/2021 10:38:41 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Dom]( [Id] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](1) NULL, CONSTRAINT [PK_Dom] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[Floor] Script Date: 4/2/2021 10:38:41 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Floor]( [Id] [int] IDENTITY(1,1) NOT NULL, [DomId] [int] NOT NULL, [Number] [int] NOT NULL, CONSTRAINT [PK_Floor] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[Invoice] Script Date: 4/2/2021 10:38:41 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Invoice]( [Id] [int] IDENTITY(1,1) NOT NULL, [StudentId] [int] NOT NULL, [TypeId] [int] NULL, [RoomId] [int] NULL, [Amount] [float] NOT NULL, [NumberOfUse] [int] NULL, [Note] [nvarchar](max) NULL, [IsPaid] [bit] NULL, [Deadline] [datetime] NULL, [DateCreated] [datetime] NULL, CONSTRAINT [PK_Bill] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO /****** Object: Table [dbo].[InvoiceType] Script Date: 4/2/2021 10:38:41 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[InvoiceType]( [Id] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](255) NULL, CONSTRAINT [PK_Bill Type] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[Price] Script Date: 4/2/2021 10:38:41 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Price]( [Id] [int] IDENTITY(1,1) NOT NULL, [TypeId] [int] NULL, [StandardPrice] [money] NULL, [StandardUsage] [int] NULL, [Date] [datetime] NULL, CONSTRAINT [PK_Price] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[PriceType] Script Date: 4/2/2021 10:38:41 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[PriceType]( [Id] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](255) NULL, CONSTRAINT [PK_Price Type] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[Request] Script Date: 4/2/2021 10:38:41 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Request]( [Id] [int] IDENTITY(1,1) NOT NULL, [StudentId] [int] NULL, [TypeId] [int] NULL, [Title] [nvarchar](255) NULL, [Purpose] [nvarchar](max) NULL, [Reply] [nvarchar](max) NULL, [IsDone] [bit] NULL, [DateCreated] [datetime] NULL, CONSTRAINT [PK_Request] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO /****** Object: Table [dbo].[RequestType] Script Date: 4/2/2021 10:38:41 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[RequestType]( [Id] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](255) NULL, CONSTRAINT [PK_Request Type] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[Room] Script Date: 4/2/2021 10:38:41 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Room]( [Id] [int] IDENTITY(1,1) NOT NULL, [FloorId] [int] NOT NULL, [RoomNumber] [int] NOT NULL, [RoomGender] [bit] NULL, [CanUse] [bit] NOT NULL, CONSTRAINT [PK_Room] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[RoomUsage] Script Date: 4/2/2021 10:38:41 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[RoomUsage]( [Id] [int] IDENTITY(1,1) NOT NULL, [RoomId] [int] NULL, [WaterUsage] [int] NULL, [ElectricUsage] [int] NULL, [Date] [datetime] NULL, CONSTRAINT [PK_Room Usage] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[Student] Script Date: 4/2/2021 10:38:41 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Student]( [Id] [int] IDENTITY(1,1) NOT NULL, [StudentCode] [nvarchar](8) NULL, [BedId] [int] NULL, [Name] [nvarchar](255) NULL, [Gender] [bit] NULL, [Email] [nvarchar](255) NULL, [Avatar] [nvarchar](max) NULL, [HasInDorm] [bit] NULL, CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[Price] ADD CONSTRAINT [DF_Price_Date] DEFAULT (getdate()) FOR [Date] GO ALTER TABLE [dbo].[Request] ADD CONSTRAINT [DF_Request_DateCreated] DEFAULT (getdate()) FOR [DateCreated] GO ALTER TABLE [dbo].[RoomUsage] ADD CONSTRAINT [DF_RoomUsage_Date] DEFAULT (getdate()) FOR [Date] GO ALTER TABLE [dbo].[Bed] WITH CHECK ADD CONSTRAINT [FK_Bed_Room] FOREIGN KEY([RoomId]) REFERENCES [dbo].[Room] ([Id]) GO ALTER TABLE [dbo].[Bed] CHECK CONSTRAINT [FK_Bed_Room] GO ALTER TABLE [dbo].[Floor] WITH CHECK ADD CONSTRAINT [FK_Floor_Dom] FOREIGN KEY([DomId]) REFERENCES [dbo].[Dom] ([Id]) GO ALTER TABLE [dbo].[Floor] CHECK CONSTRAINT [FK_Floor_Dom] GO ALTER TABLE [dbo].[Invoice] WITH CHECK ADD CONSTRAINT [FK_Invoice_Invoice Type] FOREIGN KEY([TypeId]) REFERENCES [dbo].[InvoiceType] ([Id]) GO ALTER TABLE [dbo].[Invoice] CHECK CONSTRAINT [FK_Invoice_Invoice Type] GO ALTER TABLE [dbo].[Invoice] WITH CHECK ADD CONSTRAINT [FK_Invoice_Room] FOREIGN KEY([RoomId]) REFERENCES [dbo].[Room] ([Id]) GO ALTER TABLE [dbo].[Invoice] CHECK CONSTRAINT [FK_Invoice_Room] GO ALTER TABLE [dbo].[Invoice] WITH CHECK ADD CONSTRAINT [FK_Invoice_Student] FOREIGN KEY([StudentId]) REFERENCES [dbo].[Student] ([Id]) GO ALTER TABLE [dbo].[Invoice] CHECK CONSTRAINT [FK_Invoice_Student] GO ALTER TABLE [dbo].[Price] WITH CHECK ADD CONSTRAINT [FK_Price_PriceType] FOREIGN KEY([TypeId]) REFERENCES [dbo].[PriceType] ([Id]) GO ALTER TABLE [dbo].[Price] CHECK CONSTRAINT [FK_Price_PriceType] GO ALTER TABLE [dbo].[Request] WITH CHECK ADD CONSTRAINT [FK_Request_Request Type] FOREIGN KEY([TypeId]) REFERENCES [dbo].[RequestType] ([Id]) GO ALTER TABLE [dbo].[Request] CHECK CONSTRAINT [FK_Request_Request Type] GO ALTER TABLE [dbo].[Request] WITH CHECK ADD CONSTRAINT [FK_Request_Student] FOREIGN KEY([StudentId]) REFERENCES [dbo].[Student] ([Id]) GO ALTER TABLE [dbo].[Request] CHECK CONSTRAINT [FK_Request_Student] GO ALTER TABLE [dbo].[Room] WITH CHECK ADD CONSTRAINT [FK_Room_Floor] FOREIGN KEY([FloorId]) REFERENCES [dbo].[Floor] ([Id]) GO ALTER TABLE [dbo].[Room] CHECK CONSTRAINT [FK_Room_Floor] GO ALTER TABLE [dbo].[RoomUsage] WITH CHECK ADD CONSTRAINT [FK_Room Usage_Room] FOREIGN KEY([RoomId]) REFERENCES [dbo].[Room] ([Id]) GO ALTER TABLE [dbo].[RoomUsage] CHECK CONSTRAINT [FK_Room Usage_Room] GO ALTER TABLE [dbo].[Student] WITH CHECK ADD CONSTRAINT [FK_Student_Bed] FOREIGN KEY([BedId]) REFERENCES [dbo].[Bed] ([Id]) GO ALTER TABLE [dbo].[Student] CHECK CONSTRAINT [FK_Student_Bed] GO