■ はじめに
Wise men learn by other men's mistakes; fools by their own.
https://dk521123.hatenablog.com/entry/2016/07/02/212547
の続き。
■ Phantom Files
* 画像をアップロードするシステムを考えた場合、主に以下の2通りあると思われる + 実装案[1] 画像ファイルとして保存し、DBにはパスを保存しておく + 実装案[2] 画像ファイルをBLOB型でDBに保存する => (場合によるが)実装案[2]がよいと主張している
■ 理由
* 物理ファイルとDBデータ(上記の例の場合「パス」)で二重管理になってしまう => バックアップ時もめんどい * 物理ファイルはDB機能外(トランザクション、ロールバック、アクセス権限)なので、 失敗した場合に、ファイルは元に戻らないことやDBアクセス制限が使えないなどが発生する
■ ファイルを外部ファイルとして用いてもいい場合
1) データベースの容量を減らし、バックアップ時間を減らせる 2) 外部ファイルならプレビューや編集が用意
参考文献
http://bluerabbit.hatenablog.com/entry/2015/03/29/214639
http://d.hatena.ne.jp/asakichy/20160706/1467756172
関連記事
SQL アンチパターン ~ 目次 ~
https://dk521123.hatenablog.com/entry/2016/07/02/212547