0

MySqlで「仮想ファイルシステム」を作成する必要があります(Webアプリケーションとしてasp.netを使用)。それほど複雑になることはなく、おそらく最大2〜3個のサブフォルダーが「深く」、各フォルダーに最大10個のファイルが含まれる可能性があります。ログイン後、各ユーザーは独自のフォルダとファイルを持ちます。管理者は「テンプレート」を作成し、新しいユーザーにテンプレートを割り当てることができる必要があります。テンプレートには、いくつかのフォルダーとファイルが含まれます。そして、これは私が作り方について頭を悩ませているものです。少なくともテーブルのデザインに近づいていると思いますが、よくわかりません。これまでに作成したテーブルは次のとおりです。

Files
 ID
 Name
 ContentType
 FileDataSize
 FileData
 Parent_Folder_ID

Folders
 ID
 Name
 Parent_Folder_ID

Users
 ID
 Name
 Email
 Password

Templates
 ID
 Name

User_Templates
 User_ID
 Template_ID

私はここで正しい方向に進んでいますか?それとも私は何かが足りないのですか?

4

1 に答える 1

1

これは非常に単純に見えますが、これはおそらくあなたの目的にぴったりです。遭遇する唯一の問題は、リーフ ノードのフル パスを決定するためにいくつかのクエリが必要になることです。

これを解決する最も簡単な方法は、実際には次のようにフル パスを別の列に格納することです。

フォルダー1/フォルダー2/ノード

それほどきれいではありませんが、確かに対処するのが最も簡単です。

別の方法として、事前注文ツリー トラバーサル アルゴリズムを使用することもできますが、これはより複雑になる可能性があり、サブツリーのフェッチは高速ですが、更新は非常に遅くなる可能性があります。

于 2012-04-14T09:47:32.343 に答える