[ milosijaa @ 23.04.2007. 07:44 ] @
Imam dilemu - trilemu kako da dizajniram tabelu koja bi cuvala podatke o mejlovima tj. mejlove (u pitanju je Web mail klijent)

resenje1.

u tabeli se pamti staza to datoteke koja predstavlja mejl. Datoteka se fizicki nalazi na WEB serveru u nekom direktorijumu. Ova tabela sadrzi i dodatne kolone koje sadrze informacije iz hedera mejla kao i flagove

resenje2.

u tabeli se pamti cela emajl poruka kao tekst u "sirovom obliku" (neparsirana, nedekodirana).Ova tabela sadrzi i dodatne kolone koje sadrze informacije iz hedera mejla kao i flagove

resenje3.

u tabelu upisujem parsiranu, dekodiranu poruku,tj. tabela sadrzi sva moguca polja koja su potrebna. (from, to, ... flaged,seen,.....).

Moja zapazanja:

Resenje1, Resenje2

- ne moram da imam posebnu tabelu u koju bi upisivao podatke o attachmentim-a.

- kako su ovako upamcene poruke istog oblika ako i one na MAIL serveru dovoljan je jedan algoritam za prikazivanje i ovih iz baze i onih sa MAIL SERVERA

Resenje3

-Neophodnost dodatne tabele za attachmente,
-Implementacija jos jednog algoritma za prikaz poruka.

ili da zaboravim na bazu i ta koristim iskljucivo file sistem?

Molim vas za misljenje. Svaki predlog je dobrodosao
[ misk0 @ 23.04.2007. 11:25 ] @
Isto kao i sa slikama - ako mozes, izbjegavaj smjestanje fajlova u bazu. Rjesenje 1 je najbolje po meni, najmanje opterecuje bazu, parsiranje fajla sa diska ide brze nego iz baze podataka. Danas ljudi mailom salju svasta, attachmenti mogu biti stvarno veliki.
[ broker @ 23.04.2007. 15:31 ] @
Ovo ipak nije obicna datoteka i neophodne su opcije pretrazivanja sto znaci da podaci moraju biti u nekom citkom obliku.

Moza je najbolje nesto izmedju, prvo razdvoj poruku na zaglavlje i telo poruke, telo cuvaj tako kako je, da li u jednom polju da li u datoteci, a iz zaglavlaj izvadi bitne podatke i smesti u polja tabele, ali sacuvaj i celo zaglavlje zbog onih podataka koje ne prepisujes u polja tabele. Tako ces imati dovoljno materijala za dobru pretragu a ne moras predvidjati svako moguce polje iz zaglavlja (a toga ima koliko hoces)
[ milosijaa @ 26.04.2007. 15:44 ] @
Postavio sam ovo pitanje na jos nekim forumima, googla-o i odgovori su sareni.

Kada sve sagledam, prica izgleda ovako :

Ako je sve u bazi, sporiji je pristup podacima, kao i pretrazivanje, ali samo do odredjene tacke,tj. kad se nakupi recimo 50GB ili vise sitnih fajlova u obliku attachmenta, mejlova (sto je realno za ocekivati) baza pokazuje svoje prednosti (pouzdanost, brzina pretrazivanja). Dok fajl sistem stuca.

S druge strane ako podatke pamtim kao fajlove na disk, performanse su bolje ako kolicina podataka nije "prevelika".

Kombinacija baze i file sistema mi mozda zvuci kao najlosije resenje, jer nesto pamtim vamo, nesto tamo... Podaci se rasipaju te se lako moze doci u situaciju da stanje u bazi ne odgovara stanju u fajl sistemu i obrnuto.

50GB priblizno oko 5 miliona fajlova ako je jedan velicine(100kb).

Mislim da je ovakva pretpostavka OK, jer su mailovi obicno mali, najcesce manji od 100kb.

Dakle govorimo o ogromnom broju fajlova, koji uvek ima tendenciju rasta. Ove fajlove ne znam kako da delim u foldere, mogu da ubiju sistem.

Ja sam se odlucio da sve trpam u bazu, s tim sto cu imati posebnu tabelu bas za poruke i posebnu tabelu za podatke iz hedera radi lakseg pretrazivanja.

Dakle nesto slicno Brokerovom predlogu.