程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> “數字公交”項目中的oracle開發技巧

“數字公交”項目中的oracle開發技巧

編輯:Oracle數據庫基礎

參與進"數字公交"項目已經有一個多月了,我自己負責的模塊也基本完成並通過測試,本項目基於Oracle的C/S結構,涉及很多數據庫方面的操作,有一些經驗是以前沒有用到的,為了留做它日參考,特記錄於此,如果看到此文的讀者能夠用到,那我更是欣慰.

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則沒有權限.
  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved