あるオブジェクトに付随するファイルをサーバで保管する際のディレクトリの構造について考えてみました。
あるオブジェクトに付随するファイルをサーバで保管する際のディレクトリの構造について考えてみました。
主キーが、1つの場合
方法① 特定のデータだけを保存させる場合
例 sales -------- my_shop.log |- donald_shop.log 書式 field_name --- object_name.log
利点 ... パスの記述がラク
方法② 他のデータも保存させる場合
例 shops -------- my_shop ------- sales.log | |- attendance.log | |- power_usage.log | |- donald_shop --- sales.log |- attendance.log |- power_usage.log 書式 class_name --- object_name --- field_name.log
利点 ... クラス構成と同じようなファイル構成にできる。
欠点 ... ファイル管理が面倒くさい。
主キーが、2つ以上の場合
ただし、木構造になっている場合に限定されます。
会社テーブルと部署テーブルの2つが存在し、部署テーブルは、会社フィールドと部署名フィールドで複合主キーを構成しているとします。
方法① 特定のデータだけを保存させる場合
例 sales --------- hello_company --- marketing_team.log (* Hello company's marketing team) | |-- nihao_company --- marketing_team.log | |-- hola_company ---- marketing_team.log 書式 field_name ---- object_name --- object_name.log (Class1) (Class2)
方法② 特定のデータだけを保存させる場合
例 companies ----- nihao_company --- teams -------- sales_team_1 ----- sales.log | | |- attendance.log | | |- power_usage.log | | | |-- sales_team_2 ---- sales.log | |- attendance.log | |- power_usage.log | |- hello_company --- teams -------- sales_team_1 ----- sales.log |- attendance.log |- power_usage.log 書式 class_names --- object_name ----- class_names --- object_name ------ field_name.log (Class1) (Class2)
いろいろ書いて思った。データベースに保存すればええやか(。-`ω-)ンー というのもあったのですが、ユーザにある複合キーの1つの名前がついた大量のログファイルを FTP でアップロードしてもらうことを考えた時に、もういっぽうの主キーはディレクトリで指定してもらったら、楽なんじゃないかなと思い、こんなことを考えてました。