项目经验――数据库SQLSERVER篇

在大型项目中,我想在困扰大家的主要问题为数据库的操作,本人就在项目中遇到了一些问题,在这里和大家交流下。
1、  本人项目中有一个复杂视图,数据量在 2 千万以上,每次对这个视图进行操作时,反映都很慢,而且这个视图还经常用到,我当时想到的是缓存起来,可是因为数据量很大,缓存到服务器端是不现实的,我们项目组用到了一种解决方案,把此视图填充到物理表中,对此物理表设置索引,但是又怕用户查询记录时正好在填充物理表的时候,所以可以设置 2 个物理表,来回切换,即:第一次填充物理表 A ,第二次填充物理表 B ,下次再填充物理表 A ,如此反复,和.NET的根据时间缓存数据原理类似。
大家可能会想到索引视图,可是索引视图限制太多,例如:不允许使用outer join 运算;表也不能与他自己连接;不允许进行子查询;定义索引视图的SELECT 语句不能包含下列关键词:UNION、TOP、DISTINC、COMPUTE或者HAVING;不能包含通配符 ,所以不是很不实用。
 
2、  不要在数据表中用到自增长字段,因为再和其它数据库导 insert 脚本时,是不能控制自增长列的值的。
 
3、  尽量少用外键约束,可以靠代码实现,外键约束会使数据库维护起来相当麻烦,尤其是在大项目中。
 
以上论述是本人在项目中的实际经验,如有其它好想法,欢迎于本人交流,下次为大家讲讲数据库的权限设计方面的经验。
数据库SQLSERVER篇(权限设计)
在权限设计中,主要还是给用户赋角色,给角色赋权限的主流方式,按 功能组 划分权限的主流方案,对于熟悉这种方法的人可以略过本次讲解,这次主要是面对一些初级用户。
具体数据库设计方案如图:

功能组定义表

代码集标识
代码集名称
父代码集标识
子系统唯一编号
代码集类别
程序集url
模块编号
 

功能角色定义表

功能角色标识
功能角色名称
功能角色描述
创建时间
有效标志
功能角色授权表
创建时间
功能角色标识
权限标识
 
权限定义表
权限标识
权限名称
子系统唯一编号
代码集标识
功能关联说明
有效标志
用户对应功能角色表
功能角色标识
用户标识
创建日期
 
用户信息表
用户标识
登录帐号
密码
操作员姓名
创建时间
 
一个相对比较全面的数据库权限设计就搞定了.
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值