自動化平臺中的ORM和許可權設計
最近在梳理平臺裡的一些基礎架構和設計,力爭把平臺裡的通用的部分能夠抽象出來,迭代複用。
在資料庫設計上我秉承了從簡的原則,如果能用一個表搞定,我絕對不會把它拆分成多個表。對於概覽資訊,其實設計上是需要考慮冗餘資訊的,哪怕看起來不是那麼的精美。但是用起來就是直接。而我絕不會只設計一個表,如果需要擴充套件的,毫無疑問,我會拆分出另外的表來。對於原來的結構設計幾乎沒有什麼影響。
第二個是對於Django的ORM,我最近也實現了一些功能和頁面,在實踐中我發現,使用原生的ORM來顯式宣告大量的關聯關係其實會引入大量的外來鍵設計,這對於資料庫設計來說,反而是略顯醜陋的。這部分的內容其實完全可以透過程式端的邏輯來控制。
當然在這個基礎上,一個很明顯的問題就是如何理解ORM的使用邊界,我的使用實踐更傾向於是使用原生的model設計,但是外來鍵關聯和多表關聯,我都是透過邏輯層來統一控制,具體怎麼控制,我是抽象出一個DAO層,把這部分邏輯放到這裡面來,這樣一來,我要定製多對多的關係,指定n多個輔助欄位都是手到擒來,這樣一來就會從已有的桎梏中解放出來。
而在這個基礎上,我們使用ORM的一個優點就是資料來源的透明,但是需要理解的是,我們說的透明,其實不代表資料遷移,所以你引入了一些定製的其他資料庫的SQL語句,如果語句符合SQL規範,其實是沒有什麼問題的,除非是資料庫特有的語句。這些如果都抽象到一個DAO層中,這個事情其實就好做多了。
對於許可權設計,我是這樣考慮的。一個最粗粒度的許可權就是基於選單級別,就是不同的使用者看到的選單應該不同。這是最基本的要求。
在這個基礎上進行擴充套件,我們可以定製不同的角色組,比如MySQL組,Redis組,不同的組看到的同一個選單中的資料也可以不同。
同時,對於資料的增刪改查,我們可以透過選單級別來控制,如果沒有修改許可權,使用者就不應該看到這個選單。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2152347/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android平臺targetSdkVersion設定及動態許可權Android
- 自動化平臺中維度設計的一點思考
- 選單許可權和按鈕許可權設定
- 關於自動化平臺的動態選單設計
- 許可權系統:許可權應用服務設計
- .NET視覺化許可權功能介面設計視覺化
- JavaWeb許可權設計原理JavaWeb
- 許可權系統設計
- 後臺許可權設計問題,請教思路
- 許可權系統設計(5)--動態性
- 許可權系統:6個許可權概念模型設計模型
- 許可權系統:許可權應用服務設計Tu
- 關於自動化平臺的動態選單設計(二)
- LR.Net低程式碼開發平臺 快速設計許可權管理模組
- 協同平臺檢視許可權開啟業務物件提示"當前使用者沒有許可權!請檢查使用者[BOS設計器]的[編輯]許可權與應用的編輯許可權!"物件
- 從0到1搭建element後臺框架許可權設計與優化框架優化
- 使用者許可權設計(三)——通用資料許可權管理系統設計
- 管理系統之許可權的設計和實現
- 授權許可權服務設計解析
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- android 許可權元件設計Android元件
- Java Web角色許可權設計JavaWeb
- 分散式系統中,許可權設計實踐分散式
- 安卓gm版手遊平臺 gm許可權手遊平臺哪個好安卓
- gm手遊平臺代理 包站免費許可權gm遊戲平臺遊戲
- 小米自動化運維平臺演進設計思路運維
- 自動化測試平臺設計與實現(一)
- 基於RBAC的許可權設計模型模型
- 關於許可權系統的設計
- 微服務中如何設計一個許可權授權服務微服務
- Oracle中定義者許可權和呼叫者許可權案例分析Oracle
- 自動化平臺的幾個小計劃
- 自動化平臺的嘗試和小結
- 公有私有synonym中的許可權實際指向和dblink中global_names和許可權封裝封裝
- Android系統許可權和root許可權Android
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- Shiro多專案許可權集中管理平臺
- .NET 平臺 WPF 通用許可權開發框架 (ABP)框架