[ darko.ostojic @ 17.10.2020. 11:50 ] @
Pozdrav svima

imam pitanje za sledecu situaciju pa bih voleo ako neko moze da pomogne vezano za tu problematiku. Aplikacija je radjena u VB.NET-u, baza je MySQL. Princip rada je sledeci:
Baza je postavljena na lokalni server, aplikacija na ostalim racunarima se konektuje na bazu kroz lokalnu mrezu, nesto je bilo price da se omoguci i online konektovanje na bazu ali otom potom.
U aplikaciji imam module npr. PONUDA, RADNI NALOG... sada bi se trebalo napraviti da npr. PONUDA, RADNI NALOG... u svojoj formi ima odeljak dokumenti da se ubace npr. slike, pdf, doc, xls, mail poruke i ostalo, e sada sta je tu najpametnije uraditi, spremiti fajlove u bazu ili nesto drugo?

Hvala unapred na odgovoru...


[Ovu poruku je menjao darko.ostojic dana 17.10.2020. u 13:04 GMT+1]
[ bokinet @ 17.10.2020. 13:37 ] @
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.



[ vujkev @ 17.10.2020. 17:08 ] @
Citat:
darko.ostojic:
.... nesto je bilo price da se omoguci i online konektovanje na bazu ali otom potom....


Preporučujem da odmah o svemu razmisliš, pre nego što kreneš da praviš opcije u programu. Ne moraš da napraviš OnLine pristup odmah, ali razmisli o tome da li će trebati i šta i kako će raditi u tom slučaju.
Ukoliko fajlove čuvaš van baze, što je preporučljivo, kako će OnLine korisnici da pristupe tim fajlovima? Da li će korisnici imati pristup tim fajlovima kad nisu u lokalnoj mreži? ...

Bolje 2 dana dobro razmisli o svim aspektima nego da za mesec dana moraš da menjaš sve iz korena
[ darko.ostojic @ 17.10.2020. 19:23 ] @
Citat:
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.


Sto se tice mail-a ja nisam dobro napisao, odnjeo sam se na cuvanje poruke iz mail client-a tako da je kao i svi ostali fajlovi.

Citat:
vujkev: Preporučujem da odmah o svemu razmisliš, pre nego što kreneš da praviš opcije u programu. Ne moraš da napraviš OnLine pristup odmah, ali razmisli o tome da li će trebati i šta i kako će raditi u tom slučaju.
Ukoliko fajlove čuvaš van baze, što je preporučljivo, kako će OnLine korisnici da pristupe tim fajlovima? Da li će korisnici imati pristup tim fajlovima kad nisu u lokalnoj mreži? ...

Bolje 2 dana dobro razmisli o svim aspektima nego da za mesec dana moraš da menjaš sve iz korena


Hvala vam obadvojici na odgovoru... Meni kada su spomenuli vezano za online pristup bazi odmah sam znao da se drugacije stvari moraju postaviti zbog daljeg rada. Ja sam imao u planu mozda odmah ici na FTP da se odradi, u samoj aplikaciji bi postavio parametre za lokal i za online mislim da bi to najvise imalo smisla. Mislio sam cak i da ne cuvam reference u bazi nego npr da napravim kao FileManager kontrolu gde bi bilo npr ako uzmem ponudu njena oznaka je 1-2020,2-2020... ide parametar FTP ili lokal i folder pod nazivom oznake mozda je to nekako najelegantnije resenje...
[ bokinet @ 19.10.2020. 08:26 ] @
Sto se tice nekog racionalnog i sveobuhvatnog resenja onda bi najpovoljnije iz ugla implementacije bilo kreiranje web servisa (kao cloud) gde bi se uvek korstio http post/get i stvar resena bilo da je lokalna / intranet/vpn / internet mreza i eventualno predvideti proxy i kesiranje file-ova kako bi se dobilo na brzini kada korisnici povlace file preko mreze.
[ darko.ostojic @ 19.10.2020. 14:51 ] @
Citat:
bokinet: Sto se tice nekog racionalnog i sveobuhvatnog resenja onda bi najpovoljnije iz ugla implementacije bilo kreiranje web servisa (kao cloud) gde bi se uvek korstio http post/get i stvar resena bilo da je lokalna / intranet/vpn / internet mreza i eventualno predvideti proxy i kesiranje file-ova kako bi se dobilo na brzini kada korisnici povlace file preko mreze.


Ovo mi izgleda primamljivo, molio bih te ako nije problem da mi das neki info u vezi ovoga, neki primjer ili link gde se mogu naci dodatne informacije da malo pogledam?
[ bokinet @ 19.10.2020. 19:24 ] @

U zavisnosti od tehnologije koja ce se koristiti ASP.NET (dot.net) ili PHP pogledati kako se radi sa HTTP POST/GET i sl. stvarima.

Posle toga napravi se odgovarajuci web servis na server strani kojem pristupaju udaljene tacke preko web browser i aplikacija preko http protokola.

Takodje moguce je koristiti i Web Soap i REST

Primer Soap vs Rest
smartbear.com/blog/test-and-monitor/soap-vs-rest-whats-the-difference/

www.w3schools.com/xml/xml_soap.asp

restfulapi.net
[ mmix @ 22.10.2020. 07:47 ] @
Ok, da dam svoja dva centa

Ako aplikaciji nece niko pristupati van firmine mreze, batali cloud. Samo ces imati jos jedan layer zezancije nad kojim imas minimalnu do nikakvu kontrolu. Pri tome ce ti lokalni pristup biti spor, pa svejedno moras da radis lokalni document management i onda sad moras sve to da drzis sinhronizovano. Razumem da je to sad hipsterana i all the rage, ali samo sebi pravis glavobolju.


Fundamentalno pitanje je da li su ti dokumenti immutable kad se naprave ili ce biti izmena. Ako ce biti izmena, onda treba da zadrzis kontorlu nad verziranjem i onda ides primarno smestanje dokumenata u bazu, ako je samo generacija dokumenata koji ce posle biti read only onda mozes i da ih smestas u neki file share na svom file serveru

Vise nije 2000a, SQL server ima FileStreams/FileTables podrsku za smestanje fajlova (i celih folder struktura) u bazu cime dobijas tri vazne osobine SQL servera u radu sa fajlovima. 1. FileStream operacije su atomic transactionable, tako da recimo upis fakture (lupam) i smestanje PDFa fakture moze da bude atomic, i da ili sve prodje ili nista da ne prodje, sto je veoma vazno za integritet podataka. 2. bice deo backup strategije. 3. fajlovi se smestaju na disk sistem, ne u mdb.ldb, i moze da se namesti lako da to snimanje bude neki network share na file serveru.
[ darko.ostojic @ 23.10.2020. 09:53 ] @
Par dana sam bio odsutan ali evo me.

Citat:
bokinet: U zavisnosti od tehnologije koja ce se koristiti ASP.NET (dot.net) ili PHP pogledati kako se radi sa HTTP POST/GET i sl. stvarima.

Posle toga napravi se odgovarajuci web servis na server strani kojem pristupaju udaljene tacke preko web browser i aplikacija preko http protokola.

Takodje moguce je koristiti i Web Soap i REST

Primer Soap vs Rest
smartbear.com/blog/test-and-monitor/soap-vs-rest-whats-the-difference/

www.w3schools.com/xml/xml_soap.asp

restfulapi.net


Hvala ti na ovome sve cu pregledati!!!

Citat:
mmix: Ok, da dam svoja dva centa

Ako aplikaciji nece niko pristupati van firmine mreze, batali cloud. Samo ces imati jos jedan layer zezancije nad kojim imas minimalnu do nikakvu kontrolu. Pri tome ce ti lokalni pristup biti spor, pa svejedno moras da radis lokalni document management i onda sad moras sve to da drzis sinhronizovano. Razumem da je to sad hipsterana i all the rage, ali samo sebi pravis glavobolju.


Fundamentalno pitanje je da li su ti dokumenti immutable kad se naprave ili ce biti izmena. Ako ce biti izmena, onda treba da zadrzis kontorlu nad verziranjem i onda ides primarno smestanje dokumenata u bazu, ako je samo generacija dokumenata koji ce posle biti read only onda mozes i da ih smestas u neki file share na svom file serveru

Vise nije 2000a, SQL server ima FileStreams/FileTables podrsku za smestanje fajlova (i celih folder struktura) u bazu cime dobijas tri vazne osobine SQL servera u radu sa fajlovima. 1. FileStream operacije su atomic transactionable, tako da recimo upis fakture (lupam) i smestanje PDFa fakture moze da bude atomic, i da ili sve prodje ili nista da ne prodje, sto je veoma vazno za integritet podataka. 2. bice deo backup strategije. 3. fajlovi se smestaju na disk sistem, ne u mdb.ldb, i moze da se namesti lako da to snimanje bude neki network share na file serveru.


@mmix ovo mi je jako elegantno resenje sa FileStreams/FileTables ali ne znam da ty podrsku ima i MySQL posto je baza od programa u njemu??