363 lines
8.7 KiB
Transact-SQL
363 lines
8.7 KiB
Transact-SQL
/*
|
|
|
|
Create tables
|
|
|
|
*/
|
|
|
|
CREATE TABLE [dbo].[Site](
|
|
[SiteId] [int] IDENTITY(1,1) NOT NULL,
|
|
[TenantId] [int] NOT NULL,
|
|
[Name] [nvarchar](200) NOT NULL,
|
|
[Logo] [nvarchar](50) NOT NULL,
|
|
[DefaultThemeType] [nvarchar](200) NOT NULL,
|
|
[DefaultLayoutType] [nvarchar](200) NOT NULL,
|
|
[DefaultContainerType] [nvarchar](200) NOT NULL,
|
|
[CreatedBy] [nvarchar](256) NOT NULL,
|
|
[CreatedOn] [datetime] NOT NULL,
|
|
[ModifiedBy] [nvarchar](256) NOT NULL,
|
|
[ModifiedOn] [datetime] NOT NULL,
|
|
[DeletedBy] [nvarchar](256) NULL,
|
|
[DeletedOn] [datetime] NULL,
|
|
[IsDeleted][bit] NOT NULL,
|
|
CONSTRAINT [PK_Site] PRIMARY KEY CLUSTERED
|
|
(
|
|
[SiteId] ASC
|
|
)
|
|
)
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Page](
|
|
[PageId] [int] IDENTITY(1,1) NOT NULL,
|
|
[SiteId] [int] NOT NULL,
|
|
[Path] [nvarchar](50) NOT NULL,
|
|
[Name] [nvarchar](50) NOT NULL,
|
|
[ThemeType] [nvarchar](200) NULL,
|
|
[Icon] [nvarchar](50) NOT NULL,
|
|
[ParentId] [int] NULL,
|
|
[Order] [int] NOT NULL,
|
|
[IsNavigation] [bit] NOT NULL,
|
|
[LayoutType] [nvarchar](200) NOT NULL,
|
|
[EditMode] [bit] NOT NULL,
|
|
[UserId] [int] NULL,
|
|
[IsPersonalizable] [bit] NOT NULL,
|
|
[CreatedBy] [nvarchar](256) NOT NULL,
|
|
[CreatedOn] [datetime] NOT NULL,
|
|
[ModifiedBy] [nvarchar](256) NOT NULL,
|
|
[ModifiedOn] [datetime] NOT NULL,
|
|
[DeletedBy] [nvarchar](256) NULL,
|
|
[DeletedOn] [datetime] NULL,
|
|
[IsDeleted][bit] NOT NULL,
|
|
CONSTRAINT [PK_Page] PRIMARY KEY CLUSTERED
|
|
(
|
|
[PageId] ASC
|
|
)
|
|
)
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Module](
|
|
[ModuleId] [int] IDENTITY(1,1) NOT NULL,
|
|
[SiteId] [int] NOT NULL,
|
|
[ModuleDefinitionName] [nvarchar](200) NOT NULL,
|
|
[CreatedBy] [nvarchar](256) NOT NULL,
|
|
[CreatedOn] [datetime] NOT NULL,
|
|
[ModifiedBy] [nvarchar](256) NOT NULL,
|
|
[ModifiedOn] [datetime] NOT NULL,
|
|
CONSTRAINT [PK_Module] PRIMARY KEY CLUSTERED
|
|
(
|
|
[ModuleId] ASC
|
|
)
|
|
)
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[PageModule](
|
|
[PageModuleId] [int] IDENTITY(1,1) NOT NULL,
|
|
[PageId] [int] NOT NULL,
|
|
[ModuleId] [int] NOT NULL,
|
|
[Title] [nvarchar](200) NOT NULL,
|
|
[Pane] [nvarchar](50) NOT NULL,
|
|
[Order] [int] NOT NULL,
|
|
[ContainerType] [nvarchar](200) NOT NULL,
|
|
[CreatedBy] [nvarchar](256) NOT NULL,
|
|
[CreatedOn] [datetime] NOT NULL,
|
|
[ModifiedBy] [nvarchar](256) NOT NULL,
|
|
[ModifiedOn] [datetime] NOT NULL,
|
|
[DeletedBy] [nvarchar](256) NULL,
|
|
[DeletedOn] [datetime] NULL,
|
|
[IsDeleted][bit] NOT NULL,
|
|
CONSTRAINT [PK_PageModule] PRIMARY KEY CLUSTERED
|
|
(
|
|
[PageModuleId] ASC
|
|
)
|
|
)
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[User](
|
|
[UserId] [int] IDENTITY(1,1) NOT NULL,
|
|
[Username] [nvarchar](256) NOT NULL,
|
|
[DisplayName] [nvarchar](50) NOT NULL,
|
|
[Email] [nvarchar](256) NOT NULL,
|
|
[CreatedBy] [nvarchar](256) NOT NULL,
|
|
[CreatedOn] [datetime] NOT NULL,
|
|
[ModifiedBy] [nvarchar](256) NOT NULL,
|
|
[ModifiedOn] [datetime] NOT NULL,
|
|
[DeletedBy] [nvarchar](256) NULL,
|
|
[DeletedOn] [datetime] NULL,
|
|
[IsDeleted][bit] NOT NULL,
|
|
CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED
|
|
(
|
|
[UserId] ASC
|
|
)
|
|
)
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Role](
|
|
[RoleId] [int] IDENTITY(1,1) NOT NULL,
|
|
[SiteId] [int] NULL,
|
|
[Name] [nvarchar](256) NOT NULL,
|
|
[Description] [nvarchar](50) NOT NULL,
|
|
[IsAutoAssigned] [bit] NOT NULL,
|
|
[IsSystem] [bit] NOT NULL,
|
|
[CreatedBy] [nvarchar](256) NOT NULL,
|
|
[CreatedOn] [datetime] NOT NULL,
|
|
[ModifiedBy] [nvarchar](256) NOT NULL,
|
|
[ModifiedOn] [datetime] NOT NULL,
|
|
CONSTRAINT [PK_Role] PRIMARY KEY CLUSTERED
|
|
(
|
|
[RoleId] ASC
|
|
)
|
|
)
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[UserRole](
|
|
[UserRoleId] [int] IDENTITY(1,1) NOT NULL,
|
|
[UserId] [int] NOT NULL,
|
|
[RoleId] [int] NOT NULL,
|
|
[EffectiveDate] [datetime] NULL,
|
|
[ExpiryDate] [datetime] NULL,
|
|
[CreatedBy] [nvarchar](256) NOT NULL,
|
|
[CreatedOn] [datetime] NOT NULL,
|
|
[ModifiedBy] [nvarchar](256) NOT NULL,
|
|
[ModifiedOn] [datetime] NOT NULL,
|
|
CONSTRAINT [PK_UserRole] PRIMARY KEY CLUSTERED
|
|
(
|
|
[UserRoleId] ASC
|
|
)
|
|
)
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Permission](
|
|
[PermissionId] [int] IDENTITY(1,1) NOT NULL,
|
|
[SiteId] [int] NOT NULL,
|
|
[EntityName] [nvarchar](50) NOT NULL,
|
|
[EntityId] [int] NOT NULL,
|
|
[PermissionName] [nvarchar](50) NOT NULL,
|
|
[RoleId] [int] NULL,
|
|
[UserId] [int] NULL,
|
|
[IsAuthorized] [bit] NOT NULL,
|
|
[CreatedBy] [nvarchar](256) NOT NULL,
|
|
[CreatedOn] [datetime] NOT NULL,
|
|
[ModifiedBy] [nvarchar](256) NOT NULL,
|
|
[ModifiedOn] [datetime] NOT NULL,
|
|
CONSTRAINT [PK_Permission] PRIMARY KEY CLUSTERED
|
|
(
|
|
[PermissionId] ASC
|
|
)
|
|
)
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Setting](
|
|
[SettingId] [int] IDENTITY(1,1) NOT NULL,
|
|
[EntityName] [nvarchar](50) NOT NULL,
|
|
[EntityId] [int] NOT NULL,
|
|
[SettingName] [nvarchar](50) NOT NULL,
|
|
[SettingValue] [nvarchar](max) NOT NULL,
|
|
[CreatedBy] [nvarchar](256) NOT NULL,
|
|
[CreatedOn] [datetime] NOT NULL,
|
|
[ModifiedBy] [nvarchar](256) NOT NULL,
|
|
[ModifiedOn] [datetime] NOT NULL,
|
|
CONSTRAINT [PK_Setting] PRIMARY KEY CLUSTERED
|
|
(
|
|
[SettingId] ASC
|
|
)
|
|
)
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Profile](
|
|
[ProfileId] [int] IDENTITY(1,1) NOT NULL,
|
|
[SiteId] [int] NULL,
|
|
[Name] [nvarchar](50) NOT NULL,
|
|
[Title] [nvarchar](50) NOT NULL,
|
|
[Description] [nvarchar](256) NULL,
|
|
[Category] [nvarchar](50) NOT NULL,
|
|
[ViewOrder] [int] NOT NULL,
|
|
[MaxLength] [int] NOT NULL,
|
|
[DefaultValue] [nvarchar](2000) NULL,
|
|
[IsRequired] [bit] NOT NULL,
|
|
[IsPrivate] [bit] NOT NULL,
|
|
[CreatedBy] [nvarchar](256) NOT NULL,
|
|
[CreatedOn] [datetime] NOT NULL,
|
|
[ModifiedBy] [nvarchar](256) NOT NULL,
|
|
[ModifiedOn] [datetime] NOT NULL,
|
|
CONSTRAINT [PK_Profile] PRIMARY KEY CLUSTERED
|
|
(
|
|
[ProfileId] ASC
|
|
)
|
|
)
|
|
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Log] (
|
|
|
|
[LogId] [int] IDENTITY(1,1) NOT NULL,
|
|
[SiteId] [int] NOT NULL,
|
|
[LogDate] [datetime] NOT NULL,
|
|
[PageId] [int] NULL,
|
|
[ModuleId] [int] NULL,
|
|
[UserId] [int] NULL,
|
|
[Url] [nvarchar](200) NOT NULL,
|
|
[Server] [nvarchar](200) NOT NULL,
|
|
[Category] [nvarchar](200) NOT NULL,
|
|
[Feature] [nvarchar](200) NOT NULL,
|
|
[Function] [nvarchar](20) NOT NULL,
|
|
[Level] [nvarchar](20) NOT NULL,
|
|
[Message] [nvarchar](max) NOT NULL,
|
|
[MessageTemplate] [nvarchar](max) NOT NULL,
|
|
[Exception] [nvarchar](max) NULL,
|
|
[Properties] [nvarchar](max) NULL
|
|
|
|
CONSTRAINT [PK_Log] PRIMARY KEY CLUSTERED
|
|
(
|
|
[LogId] ASC
|
|
)
|
|
)
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[HtmlText](
|
|
[HtmlTextId] [int] IDENTITY(1,1) NOT NULL,
|
|
[ModuleId] [int] NOT NULL,
|
|
[Content] [nvarchar](max) NOT NULL,
|
|
[CreatedBy] [nvarchar](256) NOT NULL,
|
|
[CreatedOn] [datetime] NOT NULL,
|
|
[ModifiedBy] [nvarchar](256) NOT NULL,
|
|
[ModifiedOn] [datetime] NOT NULL,
|
|
CONSTRAINT [PK_HtmlText] PRIMARY KEY CLUSTERED
|
|
(
|
|
[HtmlTextId] ASC
|
|
)
|
|
)
|
|
GO
|
|
|
|
/*
|
|
|
|
Create foreign key relationships
|
|
|
|
*/
|
|
ALTER TABLE [dbo].[Module] WITH CHECK ADD CONSTRAINT [FK_Module_Site] FOREIGN KEY([SiteId])
|
|
REFERENCES [dbo].[Site] ([SiteId])
|
|
ON DELETE CASCADE
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Page] WITH CHECK ADD CONSTRAINT [FK_Page_Site] FOREIGN KEY([SiteId])
|
|
REFERENCES [dbo].[Site] ([SiteId])
|
|
ON DELETE CASCADE
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[PageModule] WITH CHECK ADD CONSTRAINT [FK_PageModule_Module] FOREIGN KEY([ModuleId])
|
|
REFERENCES [dbo].[Module] ([ModuleId])
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[PageModule] WITH CHECK ADD CONSTRAINT [FK_PageModule_Page] FOREIGN KEY([PageId])
|
|
REFERENCES [dbo].[Page] ([PageId])
|
|
ON DELETE CASCADE
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Role] WITH CHECK ADD CONSTRAINT [FK_Role_Site] FOREIGN KEY ([SiteId])
|
|
REFERENCES [dbo].[Site] ([SiteId])
|
|
ON DELETE CASCADE
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[UserRole] WITH CHECK ADD CONSTRAINT [FK_UserRole_User] FOREIGN KEY ([UserId])
|
|
REFERENCES [dbo].[User] ([UserId])
|
|
ON DELETE CASCADE
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[UserRole] WITH CHECK ADD CONSTRAINT [FK_UserRole_Role] FOREIGN KEY ([RoleId])
|
|
REFERENCES [dbo].[Role] ([RoleId])
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Permission] WITH CHECK ADD CONSTRAINT [FK_Permission_Site] FOREIGN KEY ([SiteId])
|
|
REFERENCES [dbo].[Site] ([SiteId])
|
|
ON DELETE CASCADE
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Permission] WITH CHECK ADD CONSTRAINT [FK_Permission_User] FOREIGN KEY ([UserId])
|
|
REFERENCES [dbo].[User] ([UserId])
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Permission] WITH CHECK ADD CONSTRAINT [FK_Permission_Role] FOREIGN KEY ([RoleId])
|
|
REFERENCES [dbo].[Role] ([RoleId])
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Profile] WITH NOCHECK ADD CONSTRAINT [FK_Profile_Sites] FOREIGN KEY([SiteId])
|
|
REFERENCES [dbo].[Site] ([SiteId])
|
|
ON DELETE CASCADE
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Log] WITH CHECK ADD CONSTRAINT [FK_Log_Site] FOREIGN KEY([SiteId])
|
|
REFERENCES [dbo].[Site] ([SiteId])
|
|
ON DELETE CASCADE
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[HtmlText] WITH CHECK ADD CONSTRAINT [FK_HtmlText_Module] FOREIGN KEY([ModuleId])
|
|
REFERENCES [dbo].[Module] ([ModuleId])
|
|
ON DELETE CASCADE
|
|
GO
|
|
|
|
|
|
/*
|
|
|
|
Create indexes
|
|
|
|
*/
|
|
|
|
CREATE UNIQUE NONCLUSTERED INDEX IX_Setting ON dbo.Setting
|
|
(
|
|
EntityName,
|
|
EntityId,
|
|
SettingName
|
|
) ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE UNIQUE NONCLUSTERED INDEX IX_User ON dbo.[User]
|
|
(
|
|
Username
|
|
) ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE UNIQUE NONCLUSTERED INDEX IX_Permission ON dbo.Permission
|
|
(
|
|
SiteId,
|
|
EntityName,
|
|
EntityId,
|
|
PermissionName,
|
|
RoleId,
|
|
UserId
|
|
) ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE UNIQUE NONCLUSTERED INDEX IX_Page ON dbo.Page
|
|
(
|
|
SiteId,
|
|
[Path],
|
|
UserId
|
|
) ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE UNIQUE NONCLUSTERED INDEX IX_UserRole ON dbo.UserRole
|
|
(
|
|
RoleId,
|
|
UserId
|
|
) ON [PRIMARY]
|
|
GO
|
|
|