dポイントプレゼントキャンペーン実施中!

添付ファイルのようなフォルダ構成の追加・更新・並び替え・削除をデータベースで実現したいと思います。
そのため、データベースに下記の項目を格納すれば良いのではと思いました。

1. フォルダID
2. フォルダ名
3. 親フォルダID
4. 並び順

ただ上記では並び替えの際に、多くのレコードの更新が必要になりそうで、
考え方として間違っているのではないかと思いました。

そのため、添付ファイルのようなフォルダ構成をデータベースで実現する場合、
どのようにするのが良いかご教示いただければと思います。

以上、よろしくお願いします。

「フォルダ構造のような仕組みの作り方につい」の質問画像

A 回答 (2件)

経路列挙モデルというのを使うといいと思います。

以下サイトで、SQL文でのtable 構築~新規登録、削除、更新方法も載っています。
「SQLで木と階層構造のデータを扱う(2)―― 経路列挙モデル」
http://www.geocities.jp/mickindex/database/db_tr …
「経路列挙モデル(準備編):MySQLで階層化データを使う」
http://www.makizou.com/archives/1662

サイトマップに応用した例
http://miztools.so.land.to/php5_list/map/
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

ご教示いただいたリンク先を参考にさせていただきたいと思います。
このたびはどうもありがとうございました。

お礼日時:2010/12/24 00:34

通常の手法として、チェーン構造が良いのでは?



並び順の番号でなく、前のID、次のIDをぞれぞれ保持します。

フォルダ自体も、前のフォルダID、次のフォルダIDを保持し、

親のIDのみでなく、子供の先頭IDでも、上下関係を管理したほうがいいかなぁ?

あとは、先頭場合の前のファイルIDの値、最終の場合の次のフォルダIDの値を予め決めておきます。(-1など)

挿入、削除はチェーンのつなぎ変えのみで行います。

フォルダ名にインデックスを設定すれば、検索も早くなると思います。

階層の番号などは持たせないほうがいいと思います。

まだ不足な点もあるかと思いますが一案として、ご参考になりましたでしょうか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

自分の中でまだ消化できてない点はありますが、参考にさせていただきたいと思います。
このたびはどうもありがとうございました。

お礼日時:2010/12/24 00:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!