現在画像つき掲示板を作成しています。
掲示板のスレッドは添付のようにしてみました。
※コメントはスレッドと別で管理します。
ここでimageのカラムにはアップした画像のパスを入れようと考えていたのですが、
アップした画像自体にthread_idをつけて保管することで、このimageのカラムは必要ない気がしてきました。(画像が保管されているフォルダからthread__idの名前があるデータがあるかどうかみるだけでよい気がしています)
※画像は必須ではありません。
ただ、どちらでもよい気がしていまして、
画像がなければ画像フォルダへのアクセスは減るかなというのもあれば、threadフィールドにimageのカラムはなくてもいいし、、、、という感じで自分の経験則から判断ができずにおります。
このような場合どうしたらよいでしょうか。
ご知見あるかたいらっしゃいましたらお知恵を拝借できればと思います。
どうぞよろしくお願いいたします。
動作するかどうかという点に関しては、どちらでもよいかと思います。
将来的なメンテナンスというか、拡張性の違いかなと思います。
例えばですが、次のような場合には、imageカラムがないと不便だと思います。
このような問題点がないのであれば、imageカラムを導入しない方が、1つの事柄を1つの場所で管理できるのでよいかもしれません。
全て予見してシステムを作ることはできませんし、必要なときに必要なメンテナンスをしてあげればいいだけではありますが。
何かの参考になれば。
結論からいうと、どちらでも良いと思います。
DBに持たせずネーミングルールだけで行く場合、DBの負担が減りますので、サーバの動作を軽くできる可能性が高まります。
※画像が必要なところで都度DBを見に行く可能性がある。
逆にDBに持たせた場合のメリットとしては、例えば現状のネーミングルールを変更して「乱数」的な物ををファイル名に付与するなどの仕様変更を行った際、変更箇所が最小限ですむ可能性が高まります。
ちなみに、サーバが単一の場合はどちらでも良いのですが、
負荷分散のため複数サーバで運用をしたい、となるともう少し混みいったお話になるのですが、そこまで考えていらっしゃるのであれば、情報を追記していただければと。
#余談ですが、テーブル設計でバイト数が決まっている物は text ではなくvarchar(32) といった
#ように固定長の物を使った方がよいかと。
回答ありがとうございます。サーバはリリース時は単一ですが、利用者数や投稿数が多くなってきた場合には分散できるようにしたいなと考えております。varcharのほうは固定物にしようかtextでしようか迷っている箇所でして、こちらも悩み中です。。
今回はカラムに持たせ、かつ命名規則もある程度統一された感じにしてやってみます。
回答ありがとうございます。頂いた内容で再考してみたのですが、やはり迷ってしまっています。画像ファイルはtrehad_id1000毎に新規で追加してそっちに保存していくようにできないかなと考えております。
2011/11/08 15:23:45迷うのであれば、オッカムの剃刀に従うというのも・・・。
2011/11/08 17:35:08