浅谈数据库设计技巧下

浅谈数据库设计技巧下

ID:46129932

大小:97.58 KB

页数:9页

时间:2019-11-21

浅谈数据库设计技巧下_第1页
浅谈数据库设计技巧下_第2页
浅谈数据库设计技巧下_第3页
浅谈数据库设计技巧下_第4页
浅谈数据库设计技巧下_第5页
资源描述:

《浅谈数据库设计技巧下》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、三、多用户及其权限管理的设计开发数据库管理类的软件,不可能不考虑多用户和用户权限设置的问题。尽管目前市面上的大.中型的后台数据库系统软件都提供了多用户,以及细至某个数据库内某张表的权限设置的功能,我个人建议:一套成熟的数据库管理软件,还是应该自行设计用户管理这块功能,原因有二:1•那些大、中型后台数据库系统软件所提供的多用户及其权限设置都是针对数据库的共有属性,并不一定能完全满足某些特例的需求;2•不要过多的依赖后台数据库系统软件的某些特殊功能,多种大、中型后台数据库系统软件之间并不完全兼容。否则一旦日后需要转换数据库平台或后台数据库系

2、统软件版本升级,之前的架构设计很可能无法重用。下面看看如何自行设计一套比较灵活的多用户管理模块,即该数据库管理软件的系统管理员可以自行添加新用户,修改已有用户的权限,删除已有用户。首先,分析用户需求,列出该数据库管理软件所有需要实现的功能;然后,根据一定的联系对这些功能进行分类,即把某类用户需使用的功能归为一类;最后开始建表:功能表(Function_table)名称类型约束条件说明f_idint无重复功能标识,主键f_namechar(20)不允许为空功能名称,不允许重复f_descchar(50)允许为空功能描述用户组表(User_

3、group)名称类型约束条件说明group_idint无重复用户组标识,group_namechar(20)不允许为空用户组名称group_powerchar(lOO)不允许为空用户组权限表,内容为功能表f_id的集合用户表(User.table)名称类型约束条件说明user_idint无重复用户标识,主键user_namechar(20)无重复用户名user_pwdchar(20)不允许为空用户密码user_typeint不允许为空所属用户组标识,和User_group.group_id关联采用这种用户组的架构设计,当需要添加新用户时

4、,只需指定新用户所属的用户组;当以后系统需要添加新功能或对旧有功能权限进行修改时,只用操作功能表和用户组表的记录,原有用户的功能即可相应随之变化。当然,这种架构设计把数据库管理软件的功能判定移到了前台,使得前台开发相对复杂一些。但是,当用户数较大(10人以上),或日后软件升级的概率较大时,这个代价是值得的。四.简洁的批量m:n设计碰到m:n的关系,一般都是建立3个表,m一个,n—个,m:n一个。但是,m:n有时会遇到批量处理的情况,例如到图书馆借书,一般都是允许用户同时借阅n本书,如果要求按批查询借阅记录,即列出某个用户某次借阅的所有书

5、籍,该如何设计呢?让我们建好必须的3个表先:书籍表(Book_table)名称类型约束条件说明book_idint无重复书籍标识,主键book_nochar(20)无重复书籍编号book_namechar(lOO)不允许为空书籍名称借阅用户表(Renter_table)名称类型约束条件说明renter_idint无重复用户标识,主renter_namechar(20)不允许为空用户姓名借阅记录表(RentJog)名称类型约束条件说明rent_idint无重复借阅记录标识,主键r_idint不允许为空用户标识,和Renter_table.

6、renter_id关联b」dint不允许为空书籍标识,和Book_table.book_id关联rent_datedatetime不允许为空借阅时间为了实现按批查询借阅记录,我们可以再建一个表来保存批量借阅的信息,例如:批量借阅表(Batch_rent)名称类型约束条件说明batch_idint无重复批量借阅标识,batch_noint不允许为空批量借阅编号,同一批借阅的batch_no相同rent_idint不允许为空借阅记录标识,和Rent_log.rent_id关联batch_datedatetime不允许为空批量借阅时间这样的设

7、计好吗?我们来看看为了列出某个用户某次借阅的所有书籍,需要如何查询?首先检索批量借阅表(Batch_rent),把符合条件的的所有记录的rentjd字段的数据保存起来,再用这些数据作为查询条件带入到借阅记录表(Rentjog)中去查询。那么,有没有什么办法改进呢?下面给出一种简洁的批量设计方案,不需添加新表,只需修改一下借阅记录表(Rentjog)即可。修改后的记录表(Rentjog)如下:借阅记录表(RentJog)名称类型约束条件说明rent_idint无重复借阅记录标识,jidint不允许为空用户标识,和Renter_table.

8、renter_id关联b_idint不允许为空书籍标识,和Book_table.book_id关联batch_noint不允许为空批量借阅编号,同一批借阅的batch_no相同rent_datedateti

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。