bokinet: Malo dodatno pojasnjenja nije na odmet dodati sa vase strane ali ovako na vec izneto.
Fizicke fileove najbolje je da cuvate u tom fizickom obliku i da ih ne ubacujete kao blob sadrzaj u bazu.
U bazi samo cuvati reference ka tim fileovima i eventualno naziv (podrazumevano recimo da bude naziv file a ako korisnik u aplikaciji hoce moze da to ime promeni).
Dakle elementarno za ovo bi isla jedna dodatna tabela koja bi ima polje naziv, lokacija i jedinstveni id broj dokumenta koje pominjete ako isti postoje kako bi povezali ove refernce kao fileove za taj dokument.
Iz svega toga sledi da recimo jedan vas dokument moze da ima jedan i vise file-ova kao prilog.
Sto se tice email poruka to je stvar vec malo visebrazna i treba videti da li ste vi pravili u aplikaciji email client koji omogucava slanje/primanje email direktno iz aplikacije ili ne.
No bilo kako bilo ovaj deo isto se moze resiti na vise nacina, jedan je da se email poruka exportuje iz program koji se koristi za email u eksterni file pa taj file da se tako naznaci kao sa vec pomenutim fileovima ili da se sadrzaj email cuva kao blob polje u bazi.
U email takodje mogu da budu fileovi kao prilozi pa to treba imati na umu.
Stavljanjem velikih fileova u bazu i cuvanjem istih moze da dodje i do problema ako slucajno dodje do pucanja baze na server pa je bolje da se samo reference cuvaj u bazi a fizicki fileovi na nekom drugom medijumi ili cak lokaciji.
Vi mozete da napravite interefejs za ovu pricu koji ce u zavisnosti kako je implementiran da sve sto je vezano za file i/o da radi u pozadi kako time dobili vece mogucnosti gde sve ti fileovi mogu da budu smesteni i da im se pristupa iz aplikacije po potrebi - na primer lokalni disk/mreza, udaljene lokacije gde im se pristupa preko http i ftp protokola, web servisi kao sto su google drive, amazon, mega i sl.