0

Web サイトに x レベルのディープ ナビゲーション メニューを実装する必要があります。このツリーを保存、操作、および表示するための適切な方法を考え出すために数時間を費やした後、MySQL ではなく JSON を使用することにしました。私はそれをファイルに入れるか、MySQLのフィールドに入れます(1つのフィールドを持つ1つの行だけなので、やり過ぎかもしれません)。

私はjQueryのネスト可能なリストプラグインを使用しています.JSONを使用したい理由は、アイテムデータがDOM要素であるため、アイテムデータを直接操作できるためです(IDを渡し、どの要素が対象であるかを処理するよりもはるかに簡単だと思います)削除、更新する必要があり、追加する必要があります)、シリアル化された出力を取得し、「そのまま」ファイルに保存し、水平のマルチレベルドロップダウンメニューにレイアウトする場合は、次のように実行できますプラグインによって作成されたアイテムの順序とネストを尊重する PHP のヘルプ。

これは何らかの理由で悪い習慣ですか?パフォーマンス的に?

4

1 に答える 1

1

次の点に注意してください。

1) MySQL を使用してツリー構造を保存することは、それほど簡単ではありません。

2) ただし、データベース エンジンはいくつかの基本的なロックを処理します (2 人のユーザーがまったく同じ時刻にツリー構造をファイルに書き込んでいるとどうなるかを考えてみてください) 。

3)構造を「そのまま」シリアライズして保存した場合、html や java-script の構造が変更された場合はどうなりますか? それでも機能しますか?ほとんどの場合、シリアル化されたすべてのデータを新しい構造と互換性があるように変換する関数を作成する必要があります。

4)パフォーマンスに関しては、 json +ファイル/ json + mysql / mysqlのみを使用するかどうかに関係なく、実際には何の違いもありません-これらの数ミリ秒は何の違いもありません。コードを論理的で、読みやすく、保守しやすいものにしてください。ほとんどの場合、「ハッキーな」コードを保守および開発するよりも、ハードウェアをアップグレードする方が安価です。

要約すると、この種のデータを json として保存しても問題ないように思われますが、上記の考えられる問題に注意してください。

于 2013-10-29T01:33:40.097 に答える