作業中のシステム(php、javascript、sencha)の基本的なファイル管理コンポーネントを構築しようとしています。システムを介して管理されているファイルに関する追加情報をデータベースに保存する必要があるかどうかについて、何らかの方法で自分自身を納得させようとしています。一方では、データベースに格納されている情報がファイルシステムに確実に反映されるようにすることで、単純な設計を複雑にすることには消極的です。なんらかの理由で同期が外れると、悪夢が続くと思います。つまり、パスが正しく更新されていません。ファイルシステムの内容に依存する方が簡単なようです。ACLのような制御メカニズムは必要ありません。
ほとんどの場合、ディレクトリ構造はファイルシステムのどこに保存されているかを気にしないため、ユーザーには表示されません。メールの添付ファイルが好きです。添付ファイルは、データベース内の他のデータに関連しています。私の最初のアイデアは、ディレクトリを使用してファイルシステム内に関係を作成することでした。例えば:
ルート
...Project_id_1
...... Theme_id_1
......... Topic_id_1
......... Topic_id_2
......... Topic_id_3
......Theme_id_2
。 ..... Theme_id_3
... Project_id_2
... Project_id_3
IDは、関連するデータベース内のアイテムのレコードIDにもなります。これをツリービューとして表示する必要がある場合を除いて、これは問題なく機能すると思います。意味のある名前を表示できるように、各ディレクトリの関係を抽出する必要があります。たぶん、これは他の場所で得られる単純さとのトレードオフです。つまり、トピック名を変更するたびにディレクトリの名前を変更する必要はありません。
すべてのファイルについてより多くの情報をDBに保存することにした場合、誰がアップロードしたか、日付などの有用な(ただし必須ではない)情報以外に何を得ることができますか。もちろん、他の理由を考慮する必要があります。デザインもいただければ幸いです。OTSのもののほとんどは、私が必要としない機能が多すぎるか、システムに後付けするには手間がかかりすぎています。