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

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

(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)
曾经蜡笔没有小新

ソリューションはテクノロジーに基づいて選択する必要があります。あなたが挙げた 2 つのソリューションについては、最初のソリューションはリレーショナル データベースの実装に適しており、2 番目のソリューションは NoSQL データベースの実装に適しています。

要約すると、最初の解決策をお勧めします。メニュー構造をフラット化すると、後でユーザー、ユーザー グループ、権限、その他のモジュールを設計するときに便利になります。 JSON ソリューションを使用してこれらの操作を実行する場合は、より複雑になります。

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