JavaScript - インターフェースのメインメニュー生成ロジックに関するさまざまな設計の議論
大家讲道理
大家讲道理 2017-06-26 10:49:08
0
1
595

メインメニューはバックグラウンド管理システムの一種で、特定のメニューまたは特定のメニュー内の特定の機能を表示するかどうかを設定によって制御できます。
その設計と実装に関して、私の個人的な要約は次のとおりです。

(1)データベース テーブルで保存
一般に、メイン メニューはツリー構造であり、従来のリレーショナル データベースに基づく 2 つのソリューションがあります。

  • (1-1)テーブル ソリューションを使用すると、テーブルには親子関係を関連付ける ID と親 ID が含まれます。

  • (1-2)2 つのテーブル ソリューションでは、1 つのテーブルはメニューの親子関係を記録するために使用され、もう 1 つのテーブルはメニュー情報のみを記録します。

データ転送スキームも 2 つあります:

  • (1-1-1)バックエンドはデータをクエリしてバックグラウンド コード ループを通じて構築するか、SQL トランザクションを使用してツリー構造を構築してフロントエンドに渡します

  • (1-1-2)バックエンドはデータをクエリしてフロントエンドに渡し、フロントエンドが独自のツリー構造を構築できるようにします

(2)json で保存
これは、この問題について主に知りたい方法です。以前に使用したことがあるかどうかはわかりません。次に、親と子を直接ビルドします。メインメニューのノード情報をjson形式に変換し、構成テーブルまたはjsonファイルに保存します。これにより、ツリー構造を構築する手間が省けます。ただし、純粋な json 形式であるため、データ構造が複雑でなければ手動でメンテナンスできますが、複雑な状況に遭遇した場合は、それをメンテナンスするためのメンテナンス インターフェイスを作成する必要がある場合があります。現時点では、json には実装されていないため、フロントエンドである SQL に似たクエリ構文 (js であると仮定します) 追加、削除、変更の確認 (特に削除) を記述するのは特に複雑になります。

###これ。 。 。 。普段どんな方法を使っているのか分かりませんが?可能であれば、簡単にお話していただければ幸いです。

同時に、
(2) json を使用して保存する についてもご意見があれば、それについてもお話しいただければと思います。 パフォーマンス、拡張性、保守性などを総合的に考慮します。

大家讲道理
大家讲道理

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

全員に返信(1)
曾经蜡笔没有小新

方案要根据技术来选,就你给出的两种方案来说,第一种更适合关系型数据库实现,第二种更适合 NoSQL 数据库实现。

综合来看更推荐第一种方案,将菜单结构 flatten 在后期设计用户、用户组、权限等模块的时候会比较方便。而使用 JSON 的方案进行这些操作就会比较复杂。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!