私はディレクトリ管理のようなテーブルを設計する必要があるプロジェクトに取り組んでいます。私はDBのほんの初心者なので、本当にあなたの専門知識が必要です。あなたはPARENT_IDは、独自のテーブルのPK IDを指している見ることができるようmysql DBの設計とクエリの最適化
id name type create_time parent_id
1 folder1 folder 2011-2-3
2 folder2 folder 2011-2-3 1
3 folder3 folder 2011-2-3 1
4 folder4 folder 2011-2-3 1
5 file1 file 2011-2-3 4
....
:データベース設計のための私の現在の考えは以下のようにillustredすることができます。フォルダのような現実の世界での制約complysは、フォルダを含めることができ、ファイルは子供、などを持っていないことができます...
最も使用されるクエリのシナリオは次のようになります。id与え
、(そのすべてのサブファイルを検索しますインクルードフォルダとファイル)は、各ファイルについて、子があるかどうかを示します。 ID与えられた
は、そのすべての祖先のID(両親、祖父母...)
が、大規模なアプリケーションを考慮見つけ、質問:
- あなたはスキーマ設計が合理的だと思います?そうでない場合は、お勧めします。
- これらの2つのシナリオでは、パフォーマンスに影響を与えないロボットクエリを作成するにはどうすればよいですか。任意のヘルプありがとうございます。
parent_idが同じテーブルに対してFKの場合、0は使用できず、NULLである必要があります。 –
書き込みたいクエリを特定し、where句で使用するのと同じ順序で同じ列にインデックスを作成します。 –
それを尊重する必要はありません...私たちは1にしてみましょう – bingjie2680