首页 新闻 会员 周边

文件权限设置表设计

0
悬赏园豆:10 [已解决问题] 解决于 2009-02-06 23:26

最近需要遇到文件权限设置的问题

一个公司都200个人

一个文件 可以有3种模式 全部共享 指定人员共享 不共享

一个文件对应的一个员工的权限有3种, 读取,修改,删除

文件的共享模式和权限都需要在数据库里记录

这样表应该怎么设计 才避免数据量过多

hekai的主页 hekai | 初学一级 | 园豆:85
提问于:2009-02-03 22:59
< >
分享
最佳答案
0

比较合理的是

create table FilePermission ( FileId int primary key, OwnerId int not null, ReadMode bit null, EditMode bit null, DeleteMode bit null);

这个表记录文件的创建者(或者叫拥有者,如果你的系统有这个概念的话),以及各种权限共享模式(Mode =1代表所有人都可以执行此操作(也就是完全共享--不知道你的意思是不是这样), 0代表所有人都不能执行对应的操作--不共享, null代表部分人可以执行,具体情况要看另一个表里的数据, 当然你把这三个列改成not null的int也行).

create table FileAccess (FileId int not null, UserId int not null, PermissionType int not null);

这个表记录部分共享的具体情况,每条记录对应一个人对一个文件拥有一种权限. PermissionType =1代表Read, 2代表 Edit, 3代表 Delete.


这样数据量比较小,但是程序在更新数值时要考虑得比较周详,因为数据分在了两个表里,可能引起冲突(比如前一个表说所有人都不能删除一个文件,但是后一个表里又有几个用户能删除它).

deerchao | 大侠五级 |园豆:8367 | 2009-02-04 02:01
其他回答(1)
0

学习....

Jared.Nie | 园豆:1940 (小虾三级) | 2009-02-04 09:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册