西瓜皮

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一直使用php来开发,演示的时候总是看见别人都用的net或者是java,而且人家那两个都带着dll,很厉害的模样。总想学确一直没入手操作, 光是想,到现在都想了有两月了,还是没有动手。现在决定开始动手弄个小东东,由于对强类型的不是太懂,只能通过简单的增删该查来实现。cyq.data太符合我这样的懒人了,只会一点简单的sql语句,强类型,弱类型随便弄,而且感觉就是用到mvc上边也没问题,大不了弄成强类型,所以就决定数据层使用cyq.data了。作者也非常的友好,给我这样的菜鸟不厌其烦的解答。废话不多说了,直接进入主题。

权限这块,我感觉应该有用户表、角色表、菜单表、角色菜单关联表、再来个按钮表,基本上差不多了。这里没有弄用户角色多对多关联,直接用户表指定角色。大致设计如下:

用户表:

CREATE TABLE [dbo].[sys_user](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[deptid] [int] NULL,
	[roleid] [int] NULL,
	[username] [nvarchar](50) NULL,
	[userpass] [nvarchar](50) NULL,
	[realname] [nvarchar](50) NULL,
	[tel] [nvarchar](50) NULL,
	[status] [int] NULL,
 CONSTRAINT [PK_sys_user] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

 角色表:(这个表里的power字段先放着,暂时还不使用。目前的想法是power字段存放条件,比如积分大于100或者这个角色只可以查看自身的数据。)

CREATE TABLE [dbo].[sys_role](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[rolename] [nvarchar](50) NOT NULL,
	[remark] [nvarchar](255) NULL,
	[power] [nvarchar](max) NULL,
 CONSTRAINT [PK_sys_role] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

菜单表:

CREATE TABLE [dbo].[sys_menu](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[pid] [int] NOT NULL,
	[path] [nvarchar](160) NULL,
	[menuname] [nvarchar](50) NULL,
	[menuurl] [nvarchar](180) NULL,
	[menusort] [int] NULL,
	[sortstring] [nvarchar](30) NULL,
	[buttonlist] [nvarchar](50) NULL,
	[remark] [nvarchar](180) NULL,
 CONSTRAINT [PK_sys_menu] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

 角色菜单关联表:

CREATE TABLE [dbo].[sys_role_menu](
	[roleid] [int] NULL,
	[menuid] [int] NULL
) ON [PRIMARY]

 按钮表:(按钮没几个,基本上就是增删该查,所以直接把按钮放到菜单的buttonlist中去了)

CREATE TABLE [dbo].[sys_button](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[buttonname] [nvarchar](50) NULL,
 CONSTRAINT [PK_sys_button] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

最后再来一个部门表:(部门ID和角色ID都关联到用户表里了,图省事)

CREATE TABLE [dbo].[sys_dept](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[pid] [int] NOT NULL,
	[path] [nvarchar](180) NULL,
	[deptname] [nvarchar](50) NOT NULL,
	[deptsort] [int] NOT NULL,
	[sortstring] [nvarchar](30) NULL,
	[remark] [nvarchar](255) NULL,
 CONSTRAINT [PK_sys_dept] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

 这里的部门和菜单采用树形操作。表建完了,把空项目的架子搭起来。类似这样:

BLL(类库):逻辑

CYQ.Data(数据库框架):路过秋天老大的数据库框架

DotNet.Utilities(类库):一些公共的类库

Entity(类库):CYQ.Data生成的表枚举、和一些自定义的sql语句

WebApp:具体的项目

明天该实际操作了。

posted on 2013-11-04 11:30  西瓜皮  阅读(359)  评论(0编辑  收藏  举报