1.users是用戶表,userid是從sequence得到的唯一序號,作為主鍵,下面的觸發器方便每次插入分配唯一的序列,其他表也可以參考於此.
CREATE OR REPLACE TRIGGER users_trig
before insert on users
for each row
declare
seq_val number;
begin
select s_userid.nextval
into seq_val from dual;
:new.userid := seq_val;
end;
2.org是部門表,其中orgid是當前部門id,porgid是上級目錄id,像這種有父子關系的表中做從某一部門向上或向下的查詢用到了oracle的connect by語句:
select * from org connect by prior orgid=porgid start with orgid=1
//從部門id為1的部門尋找所有子部門
select * from org connect by prior porgid=orgid start with orgid=1
//從部門id為1的部門尋找所有父部門
3.用戶,角色,權限關系處理
角色表裡有角色的模塊權限,用1和0表示,1表示有,0表示無,如果系統有10 個模塊,則每一角色的權限用10位的01來表示,用戶被賦予角色,一個用戶可以有多個角色,相對與用戶的權限就是所有它擁有角色的權限字段做與操作的結果.
strSql = "select substr(power," & modID & ", 1) as rightbit from role where roleid in(select roleid from role_user where userid in(select userid from users where loginname='" & strLoginName & "'))"
//列出了當前用戶所擁有角色對當前模塊的權限結果集中如果有1則用戶有權限,如果全為0則沒有權限.