SQL通用权限数据库表结构设计 - 实用 - lbx

####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(32) 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(32) NULL ,
[create_user_name] nvarchar(20) NULL ,
[create_time] datetime NULL DEFAULT getdate(),
[modify_user_id] varchar(32) 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(32) NOT NULL ,
[group_id] varchar(32) NOT NULL 
);

CREATE TABLE [dbo].[auth_group_user] (
[id] int NOT NULL IDENTITY(1,1) PRIMARY key,
[user_id] varchar(32) NOT NULL ,
[group_id] varchar(32) NOT NULL 
);

CREATE TABLE [dbo].[auth_rule] (
[id] varchar(32) NOT NULL PRIMARY key ,
[pid] varchar(32) 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(32) NULL ,
[create_user_name] nvarchar(20) NULL ,
[create_time] datetime NULL DEFAULT getdate(),
[modify_user_id] varchar(32) 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(32) 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(32) 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(32) NULL ,
[dept_name] varchar(50) NULL ,
[status] int NOT NULL DEFAULT 1,
[create_user_id] varchar(32) NULL ,
[create_user_name] nvarchar(20) NULL ,
[create_time] datetime NULL DEFAULT getdate(),
[modify_user_id] varchar(32) NULL ,
[modify_user_name] nvarchar(20) NULL ,
[modify_time] datetime NULL 
);

**备注:**此处Id采用自增的形式,为了方便还是建议采用GUID,这样在插入数据之前即可知道Id的值,写入数据较为方便。此外,如果表直接建立了外键关系的话,数据传输将会很头疼,建议不要采用外键的形式。

猜你喜欢

转载自blog.csdn.net/lbx_15887055073/article/details/82083585
今日推荐