SQL通用許可權資料庫表結構設計
阿新 • • 發佈:2019-02-14
####1、使用者組表
CREATE TABLE [dbo].[rrl_group] ( [Id] int NOT NULL IDENTITY(1,1) , [name] nvarchar(50) NOT NULL , [status] int NOT NULL , [CreateUserId] int NOT NULL , [CreateUserName] nvarchar(20) NULL , [CreateTime] datetime NOT NULL , [ModifyUserId] int NOT NULL , [ModifyUserName] nvarchar(20) NULL , [ModifyTime] datetime NULL , [code] nvarchar(50) NULL , [type] int NOT NULL DEFAULT ((0)) )
####2、許可權表
CREATE TABLE [dbo].[rrl_rule] ( [Id] int NOT NULL IDENTITY(1,1) , [name] nvarchar(100) NOT NULL , [title] nvarchar(100) NULL , [status] int NOT NULL , [CreateUserId] int NOT NULL , [CreateUserName] nvarchar(20) NULL , [CreateTime] datetime NOT NULL , [ModifyUserId] int NOT NULL , [ModifyUserName] nvarchar(20) NULL , [ModifyTime] datetime NULL , [pid] int NOT NULL DEFAULT ((0)) , [url] nvarchar(150) NULL )
####3、使用者表
CREATE TABLE [dbo].[rrl_user] ( [Id] int NOT NULL IDENTITY(1,1) , [username] nvarchar(50) NOT NULL , [password] nvarchar(64) NOT NULL , [name] nvarchar(20) NOT NULL , [phone] nvarchar(20) NULL , [dept] nvarchar(50) NULL , [status] int NOT NULL , [CreateUserId] int NOT NULL , [CreateUserName] nvarchar(20) NULL , [CreateTime] datetime NOT NULL , [ModifyUserId] int NOT NULL , [ModifyUserName] nvarchar(20) NULL , [ModifyTime] datetime NULL )
####4、使用者組-許可權關係表
CREATE TABLE [dbo].[rrl_group_rule] (
[id] int NOT NULL IDENTITY(1,1) ,
[rule_id] int NOT NULL ,
[group_id] int NOT NULL
)
####5、使用者組-使用者關係表
CREATE TABLE [dbo].[rrl_group_user] (
[id] int NOT NULL IDENTITY(1,1) ,
[user_id] int NOT NULL ,
[group_id] int NOT NULL
)
ID為Guid的所有表結構建立SQL:
CREATE TABLE [dbo].[auth_group] (
[id] varchar(36) NOT NULL PRIMARY key,
[group_key] nvarchar(50) NOT NULL ,
[group_name] nvarchar(50) NOT NULL ,
[group_type] int NOT NULL DEFAULT 1,
[status] int NOT NULL DEFAULT 1,
[create_user_id] varchar(36) NULL ,
[create_user_name] nvarchar(20) NULL ,
[create_time] datetime NULL DEFAULT getdate(),
[modify_user_id] varchar(36) NULL ,
[modify_user_name] nvarchar(20) NULL ,
[modify_time] datetime NULL
);
CREATE TABLE [dbo].[auth_group_rule] (
[id] int NOT NULL IDENTITY(1,1) PRIMARY key,
[rule_id] varchar(36) NOT NULL ,
[group_id] varchar(36) NOT NULL
);
CREATE TABLE [dbo].[auth_group_user] (
[id] int NOT NULL IDENTITY(1,1) PRIMARY key,
[user_id] varchar(36) NOT NULL ,
[group_id] varchar(36) NOT NULL
);
CREATE TABLE [dbo].[auth_rule] (
[id] varchar(36) NOT NULL PRIMARY key ,
[pid] varchar(36) NULL ,
[rule_key] nvarchar(100) NOT NULL ,
[rule_name] nvarchar(100) NOT NULL ,
[url] nvarchar(150) NULL ,
[status] int NOT NULL DEFAULT 1,
[create_user_id] varchar(36) NULL ,
[create_user_name] nvarchar(20) NULL ,
[create_time] datetime NULL DEFAULT getdate(),
[modify_user_id] varchar(36) NULL ,
[modify_user_name] nvarchar(20) NULL ,
[modify_time] datetime NULL
);
CREATE TABLE [dbo].[auth_token] (
[id] int NOT NULL IDENTITY(1,1) PRIMARY key,
[user_id] varchar(36) NOT NULL ,
[token] nvarchar(50) NOT NULL ,
[status] int NOT NULL DEFAULT 1,
[create_time] datetime NOT NULL ,
[valid_time] datetime NULL,
[login_info] nvarchar(250) NULL
);
CREATE TABLE [dbo].[auth_user] (
[id] varchar(36) NOT NULL PRIMARY key ,
[username] nvarchar(50) NOT NULL ,
[password] nvarchar(64) NOT NULL ,
[name] nvarchar(20) NOT NULL ,
[phone] nvarchar(20) NULL ,
[dept_id] varchar(36) NULL ,
[dept_name] varchar(50) NULL ,
[status] int NOT NULL DEFAULT 1,
[create_user_id] varchar(36) NULL ,
[create_user_name] nvarchar(20) NULL ,
[create_time] datetime NULL DEFAULT getdate(),
[modify_user_id] varchar(36) NULL ,
[modify_user_name] nvarchar(20) NULL ,
[modify_time] datetime NULL
);
CREATE TABLE [dbo].[logger_2018] (
[id] int NOT NULL IDENTITY(1,1) PRIMARY key,
[log_type] varchar(10) NULL ,
[source_path] varchar(255) NULL ,
[message] text NULL ,
[user_id] varchar(36) NULL ,
[user_name] varchar(255) NULL ,
[log_time] datetime NULL DEFAULT (getdate())
);
**備註:**此處Id採用自增的形式,為了方便還是建議採用GUID,這樣在插入資料之前即可知道Id的值,寫入資料較為方便。此外,如果表直接建立了外來鍵關係的話,資料傳輸將會很頭疼,建議不要採用外來鍵的形式。