freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于數據庫的權限系統(tǒng)設計(編輯修改稿)

2025-02-12 11:44 本頁面
 

【文章內容簡介】 界面,一個完整的基于數據庫引擎的權限系統(tǒng)算是完成了。嚴重注意:在制作“系統(tǒng)菜單與角色間具體的權限分配界面”時,如果在界面上把某個角色對該條菜單的“查看”這個選項disable后,那么該角色將不擁有任何該菜單的所有權限,舉例:某角色對菜單A擁有如下權限:增、刪、改、打印但是這個“查看”權限沒有,也有可能是管理員誤操作,但是從真實情況我們來說,這個角色連“查看”的權限都沒有,連菜單都進不了,他能做什么“增、刪、改?!钡绕渌牟僮靼。坎僮鱾€頭?。∈前??所以一旦界面上該角色對某個系統(tǒng)菜單沒有了查看權限后,它對這個菜單的其它權限也必須從T_MENU_PRIVILEGE這個表中刪除。四、改進T_SYSTEM_MENU表的設計前面我們用的是Oracle特有的遞歸SQL將樹形菜單在從數據庫中選取出來時就已經是一顆樹的結構了,但是像MYSQL,SQL SERVER, DB2等可能不帶有這樣的特SQL,那就需我們自己動手去寫遞歸,還有就是很多工程用的是jquery的tree或者是其它相關的ajax tree,這些tree都需要用到一個字段叫l(wèi)evel(此處指深度、層次的意思),如果按照原來的表結構,要取得這個level,恐怕是要寫遞歸算法 了。就算有些數據庫有類似的語句,那也需要你去修改你的SQL語句從未影響了性能與通用性。我們在這邊說,我們無論什么數據庫,如果都用相同的SQL就能把我們需要的東西在數據庫中就排好樹形結構然后一次性選取出來,那應該有多好啊。答案 是有的,在原來的T_SYSTEM_MENU表中改動也不大,只需要增加兩個字段即可,即:lft與rgt(left, right),這種設計其實已經有了,我在此只不過結合實際例子把它應用到實際上,并且進一步詳細描述如果來實現它,它就是被稱為:左右值無限分類實現算法也稱為預排序遍歷樹算法,對于這種層次型數據(Hierarchical Data)一般我們有兩種設計方法:252。 毗鄰目錄模式(adjacencylist model)252。 預排序遍歷樹算法(modifiedpreorder tree traversal algorithm) 基于lft, rgt的無限分類算法我們來看一個圖,下面我們把我們原有的菜單畫成下面這樣的層次關系:我們把原有的系統(tǒng)菜單畫成了一個個的橢圓,最外層的就是我們的菜單,然后在每個橢園的兩個端點即left與right,按照從左右,開始用數字來標號,上面這個圖中可以看到最外層這個大橢園的lft(左)為1,它的rgt(右)為24。那么我們可以用一條標準的SQL,而非什么數據庫自帶的特有的、特殊的SQL來顯示出這個樹形菜單,來看下面的SQL:SELECT menuId, menuDescr, , , menuUrl, (COUNT()1) menuLevel, pidFROM t_sys_menunode, t_sys_menuparentWHERE AND !=39。菜單39。GROUPBY ,,ORDERBY 來看顯示的結果看看上面這個結果,怎么樣?252。 樹形結構也有了(可以用于dtree來顯示);252。 層次level也有了(可以用于ajax的一些tree);252。 我們用的SQL又是最標準的所有的數據庫都能用到的SQL;嘗到甜頭了是吧?那我們下面來看如何對這樣的基于t, rgt的數據結構來作插入操作? 如何在現有節(jié)點中插入新的子節(jié)點如果現在我們要在“報表查詢”這個圓里加入一個菜單,假設我們就叫“周報”,那么再來看這個原有的圖發(fā)生了什么樣的改變,來看:看到么,原有的最外層橢園的rgt+2,原有的報表查詢這個園的右邊界呢?是不是也加了2?。慷械摹霸聢蟆边@個圓的lft加了多少?也是+2!那么來看“周報”這個圓的lft與rgt關系:“周報”的lft= “報表查詢”這個圓的lft+1“周報”的rgt=“報表查詢”這個圓的lft+2于是我們就可以整理出在原有葉子中插入child的公式:第一步:選取要被插入new child的外面這個圓的lft的值第二步:原有的數據中所有的rgt如果第一步中得到的lft的值,那么全部+2第三步:原有的數據中所有的lft如果第一步中得到的lft的值,那么全部+2第四步:將插入的節(jié)點的lft與rgt的設計,新節(jié)點的lft =第一步中的lft+1,新節(jié)點的rgt=第一步中的lft+2來看一個具體的例子:我們要在“報表查
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1