【SQL】 SQL アンチパターン ~ Phantom Files(幻のファイル) ~

 ■ はじめに

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