平時看到各位園子的朋友真的很厲害,設計了很多關於許可權管理的東西,
很羨慕,但同時也覺得在一些小型專案上,那樣的設計是否有點設計過度呢
其實這也說不清,可能是自己資歷尚淺,還沒看明白各位高人的設計
自己也寫了個,帖出來請教下園子的各位朋友
用pd 弄了個圖,
這裡想說明的是關於部門表和模組表的 索引 字段
因為大家都知道部門是樹結構的資料
那麼怎樣來體現這個樹結構,成了很有意思的事情,
原來我的設想是 新增字段 「fatherelement」 ,記錄父節點的id
但是考慮到這個遍歷表會遍歷很多遍,效率貌似比較低
於是採用第二種方法
新增字段"elementindex" 之後編號規則為,父節點編號 + 雙位自己的編號
考慮到方便處理,設定起始編號為10
如果不太明白的話,舉個例子
裡面有 新手區,精華區,新手區有這個blog 於是編號如下
name index
10新手區 1010
精華區 1011
新手區的第一篇文章 101010
新手區的第二篇文章 101011
這樣的話,當用select 語句的時候,讀到乙個記錄後就可以以它的索引加"__"尋找它的字節點了,
寫個遞迴,乙個樹就輕鬆加愉快的出來了。
這是自己做的個生成ext中tree 所需要的**。
歡迎各位達人能給小弟一些意見,建議,本人在此先謝謝了。
using system;
using system.data;
using system.configuration;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.web.ui.htmlcontrols;
using system.text;
///
/// 在這裡我使用了themodule.xsd作為我的資料提供,
///最後的篩選條件是 where moduleindex like @theindex
///
/// atpking
///
///
/// 2008-6-5
///
///
publicclass buildmoduletree
///
/// 建立乙個json形式的字串,來自於表module,使用乙個索引編號制定根節點。
///
/// 根節點的編號
///
publicstring buildmoduletree(string rootmoduleindex)
///
/// 建立乙個json形式的字串,來自於表module,從根節點開始執照
///
///
publicstring buildmoduletree()
privatevoid buildtree(themodule.moduledatatable themodule)
else
}
jsonstr.remove(jsonstr.length - 1, 1);
}
///
/// 返回乙個themodule的強模型
///
/// 子模組的索引
///
private themodule.moduledatatable themodule(string tempindex)
}
許可權架構設計以及擴充套件
1,thinkphp許可權管理擴充套件 php casbin 是乙個強大的 高效的開源訪問控制框架,它支援基於各種訪問控制模型的許可權管理。think casbin 是乙個專為thinkphp5.1定製的casbin的擴充套件包,使開發者更便捷的在thinkphp專案中使用casbin。針對 thi...
裝置樹的設計的理解以及應用
linux裝置驅動模型的前提就是裝置以及驅動適配了才可以載入驅動probe工作,一開始linux的硬體裝置資訊都是通過rch arm mach 檔案描述成許多多的裝置資訊的,然後在系統載入起來的時候裝置與驅動匹配成功開始載入驅動程式呢,但是這些 包含許多硬體板級資訊細節,多而且冗餘,不好搞。所以提出...
許可權的設計
rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...