javascript - 關於介面主選單產生邏輯的各種設計討論
大家讲道理
大家讲道理 2017-06-26 10:49:08
0
1
722

主選單,就是那種後台管理系統裡面,透過設定可以控制是否顯示某選單,或某選單裡的某個功能。
關於它的設計和實現方式,我個人總結大概有以下幾種。

(1)用資料庫表保存
一般主選單都是樹狀結構,基於用傳統關係型資料庫來保存的方案,有2種。

  • (1-1)用1個表格的方案,則表格裡麵包含1個id和parentid來關聯父子關係。

  • (1-2)用2個表格的方案,則1個表格用來記錄選單父子關係,另一個表純記錄選單的資訊。

資料傳遞方案也有2種:

  • (1-1-1)後端查詢出數據,透過後台程式碼循環構建,或用sql事務建構好樹狀結構,再傳遞給前端

  • (1-1-2)後端查詢出數據,傳給前端,讓前端自行建構樹狀結構

#(2)用json保存
這個是我這個問題主要想了解的方式,不知道你們是否有用過,則直接把主選單的父子節點資訊建構成json格式,存到一個設定表裡,或一個json檔案裡。這樣可以免去構造樹結構的麻煩。但由於是純json格式,人工維護的話,資料結構不複雜的情況下還可以,如果遇到複雜的情況,可能需要寫一個維護介面來維護,這時候由於json並沒有類似sql的查詢語法,前端(假設是js)寫增刪查改起來會特別複雜(特別是刪除)。

這個。 。 。 。不知道你們平常用的是什麼方式?可以的話希望可以簡要的說說,
同時,如果對(2)用json保存這種方式有什麼看法的話,也可以說說。
綜合考慮效能,可擴展性,可維護性等等。

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(1)
曾经蜡笔没有小新

方案要根據技術來選,就你給出的兩種方案來說,第一種比較適合關聯式資料庫實現,第二種比較適合 NoSQL 資料庫實作。

綜合來看更推薦第一種方案,將選單結構 flatten 在後期設計使用者、使用者群組、權限等模組的時候會比較方便。而使用 JSON 的方案進行這些操作就會比較複雜。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板