Veritabanınızdaki verilerle ilgili ikili dosyaları saklamak için en iyi yer neresidir? Sen-meli:
- Bir blob ile veritabanında saklayın
- Veritabanında bir bağlantı bulunan dosya sisteminde saklayın
- Dosya sisteminde depolayın ancak içeriğin karma değerini değiştirin ve karma veritabanını depolayın.
- Düşünmediğim bir şey
(1) 'in avantajları (diğerleri arasında) işlemlerin atomitesinin korunmuş olmasıdır. Maliyet, depolama (ve ilişkili akış / yedekleme) gereksinimlerini önemli ölçüde artırabilmenizdir
(3) 'ün amacı, atomiteyi bir dereceye kadar korumaktır - yazdığınız dosya sisteminin dosyaların değiştirilmesine veya silinmesine izin vermediğini ve dosya adı olarak her zaman doğru hassa sahip olduğunu zorlayabilirseniz. Buradaki düşünce, hash ile ilgili ekleme / güncelleme işlemine izin vermeden önce dosyayı dosya sistemine yazmak olacaktır - eğer bu işlem dosya sistemi yazdıktan sonra ancak DML veri tabanından önce başarısız olursa, bu iyi bir işlemdir, çünkü dosya sistemi tümünün deposudur. Olası dosyalar ve kareler - içinde işaret edilmeyen bazı dosyalar olup olmadığının bir önemi yoktur (ve dikkatli olursanız bunları periyodik olarak temizleyebilirsiniz)
DÜZENLE:
Bazı RDBMS'lerin bunu bireysel yollarıyla ele almış gibi görünüyorlar - başkalarının nasıl yaptığını bilmek isterim - ve özellikle postgresler için bir çözümde