ugrás a tartalomhoz

File tárolása relációs adatbázisban

Butcher · 2007. Dec. 26. (Sze), 19.05
Hi,

Épp egy alkalmazáshoz készitem az adabázis tervet.
Valahogy sosem volt kérdés, hogy a fileokat hol tároljam, de egyre
több helyen veszem észre, hogy adatbázisba tolják fel a fileokat.
Kinek mi a tapasztalata illetve mit ajánlotok, ha dokumetumokat kell
eltárolnok, érdemes azt sql-be (mysql-be) közvetlenül rakni?

thx,
Ákos
 
1

Nem

vbence · 2007. Dec. 26. (Sze), 19.34
Nagyobb erőforrásigény (az apache egy fájlt "zsigerből" kiszolgál, szembe a php betöltésével, és az adatbázis terhelésével).
Kisebb felxibilitás (ugye fájlokra vannak backup eljárások, fjlokat tudunk mozgatni ezer módon).
Cache-használat (az apche hozzá ad minden szükséges infót: last modified, etag, van benne if-modified-since kezelés, db esetén neked kell leprogramozni).
Nem migrálható (többékevésbé minden adatbázis tud BLOB tipust, de én nem építenék erre).

És olyan dolgokról most nem beszélek, hogy egy hatalmas adattáblát (azaz fájlt) hogyan írsz ki egy dvd-re, vagy egy fat32-es meghajtóra.

Biztos van olyan eset, amikor jobb az adatbázis, a kérés, csak az, hogy a tied ilyen-e. 90%, hogy nem.
2

a másik oldal

Hodicska Gergely · 2007. Dec. 27. (Cs), 15.39
Azért ne csak a hátrányokról legyen szó. Komoly előny lehet a DB-ben való tárolás esetén, hogy tudsz biztonságosan tranzakciót kezelni, ezzel összefügg, hogy lényegesen egyszerűbb a DB és a fájlok konzisztensen tartása, valamint a DB és a fájlok együttes mentése sem annyira nehézkes.


Üdv,
Felhő
3

Saját szerver...

janoszen · 2007. Dec. 27. (Cs), 16.27
Igen... ha saját szerveren futsz. Osztott szervereken belefutsz olyan fantomhibákba, hogy SQL lekérés csomagmérete, stb... osztán lehet vele szívni. :) Ergó nagyon igaz az, hogy csak indokolt esetben. Sajnos az adatbázis nem a megváltás maga és megvannak a buktatói.
4

További előnyök

Joó Ádám · 2007. Dec. 27. (Cs), 20.20
Cserébe egyszerűbb kezelni, egységes platformmal dolgozhatsz, minden adat az adatbázisban van, ráadásul, ha pl. jogosultságokat is akarsz, akkor úgyis meg kell írnod a kiszolgálást (cache stb.).