|
[ solarko @ 17.10.2006. 14:22 ] @
| Pozdrav!
Radim u Delphiju na jednom programu slicnom recniku [ termin1 = termin2 ].
Ocekujem oko 10.000 reci.
Kolekcija termina mora biti prosiriva od strane korisnika.
Da li da radim sa BD-om (MSSQL ili Access) ili sa klasicnim textualnim fajlovima?
Do sada nisam radio sa DB [a i nemam baz mnogo vremena] pa ako je PREVISE komplikovano, da li bi txt izdrzao.
Bitna je, naravno, brzina dobijanja rezultata.
Inace ceo projekat je OS, pa ko jos zeli da pomogne, moze da mi se javi na pm.
Srdacan pozdrav,
Strahinja |
[ sasas @ 17.10.2006. 15:09 ] @
Drzi se txt-a definitivno. Nema brige za brzinu, ako se pristojno uradi program, cak i ako je kolicina podataka x100. S druge strane ces izbeci milion manjih i vecih problema s instalacijom/odrzavanjem ako uradis stvar bez baze.
ss.
[ Miloš Baić @ 17.10.2006. 15:27 ] @
Citat: sasas: Drzi se txt-a definitivno.
Ne slažem se s ovim. Lično, radio bih s bazama. 10 000 reči i nije baš malo. S tim ako planiraš postaviti program, sa ili bez baze, delphi mora biti legalan ili da radiš u Turbo Delphi verziji. Od besplatnih baza to je definitvno PostgreSQL, OpenSource, najbolje rešenje.
[ nikola.j @ 17.10.2006. 15:45 ] @
>
Ne treba mu PostreSQL za recnik :) Dovoljno ce biti da koristi npr kbmMemTable
ili SQLMemTable. Mozda SQLite.
[ Vladica Savić @ 17.10.2006. 16:03 ] @
I ja glasam za neku bazu podataka...
Mislim, kao sto je i loshmiscg rekao, sta ako sve to "malo vise" poraste?
Naravno, ogradjujem se da je to moje misljenje... 
[ solarko @ 17.10.2006. 16:21 ] @
Koliko radnih sati bi mi trebalo da naucim i implementiram neku od tih DB? [znam ponesto o bazama, ali nisam radio delhi+db]
Za konkretne dev alate se jos nisam odlucio, da vidim prvo globalne delove.
Hvala na brzim odgovorima
[ Miloš Baić @ 17.10.2006. 16:25 ] @
Citat: solarko: Koliko radnih sati bi mi trebalo da naucim i implementiram neku od tih DB? [znam ponesto o bazama, ali nisam radio delhi+db]
Zavisi, na to je teško dati odgovor. Samo ti to možeš proceniti.
Citat: Ne treba mu PostreSQL za recnik :)
Možda mu ne treba PostgreSQL, u redu, ali ja bih to sa nekom bazom odradio, pogotovo što može doći do povećanja količine podataka u bazi.
[ chachka @ 17.10.2006. 20:36 ] @
TXT
Nema opravdanja da se kod korisnika instalirati 20+ MB softvera (server) zbog 1MB aplikacije i podataka.
[ _deran_ @ 17.10.2006. 21:32 ] @
Koristi ClientDataset pa sacuvaj podatke u .cds ili .xml formatu. Sigurno najjednostavnije resenje a opet imas 'locate' za brzu pretragu. Das samo midas.dll (oko 200kb) ili dodas midaslib u uses. Naravno to samo ako se radi o takvoj tabeli (termin1 = termin2). Za nesto prosto sa upitima najbolje je access (ne treba ti nista uz bazu, win sve ima u sebi) i naravno PostgreSQL ili Oracle za komplikovanije stvari.
[ Srki_82 @ 17.10.2006. 21:44 ] @
Ako ti treba termin1=termin2, hoces nesto jednostavno, bez third-party kontrola i biblioteka, za tebe je TStringList koji se vec nalazi u Delphi-u i vec ima to sto zelis... cak sam ume da se snimi i da se ucita iz fajla, lako moze da se ubaci u sve tipove listi i grida, radi pristojnom brzinom cak i sa listama... ako imas listu stringova u promenljivoj S, dva edit boxa (u jednom pises zeljenu rec, a u drugoj dobijes ono sto je za nju vezano) i jedan button, ceo program bi izgledao ovako:
Code: procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text := S.Values[Edit1.Text];
end;
Od toga jednostavnije ne moze da bude 
[ _deran_ @ 17.10.2006. 22:30 ] @
Mislim da je za recnik ipak bolje koristiti clientdataset jer ne tada ne mora znati celu rec koja se trazi. Moze koristiti filter da se prikaze skup recorda ili locate options da pretrazuje po delu naziva. Isto jedna linija koda, i ima citanje i snimanje u file.
[ Srki_82 @ 17.10.2006. 22:44 ] @
Na njemu je da odluci... manja velicina kompletnog paketa, jednostavnija instalacija, sporije izvrsavanje ili veci paket, komplikovanija instalacija, brze i fleksibilnije izvrsavanje 
[ Bojan Kopanja @ 18.10.2006. 00:16 ] @
Ako se odlucis za bazu definitivno probas SQLite, mali je i ne treba nikakav server da bi radio, tako da je ti sve sto ti moze zatrebati za jedan recnim, pa sve i da naraste na 100 000 reci  .
[ Vladica Savić @ 18.10.2006. 06:42 ] @
Citat: solarko: Koliko radnih sati bi mi trebalo da naucim i implementiram neku od tih DB? [znam ponesto o bazama, ali nisam radio delhi+db]
Za konkretne dev alate se jos nisam odlucio, da vidim prvo globalne delove.
Hvala na brzim odgovorima
Pa, svaki problem se deli na dva osnovna dela, LOGICKI i TEHNICKI. A sad koliko ti treba da resis i jedan i drugi, to zavisi samo od tebe...
BTW-Ako pravis konkretno recnik, a ne nesto nalik recniku, i ako hoces da to bude poprilicno dobro prihvaceno, probaj da ubacis i nesto po sistemu PROLOGA.
PozZz
[ Miloš Baić @ 18.10.2006. 06:56 ] @
Citat: chachka: TXT
Nema opravdanja da se kod korisnika instalirati 20+ MB softvera (server) zbog 1MB aplikacije i podataka.
Da, ovo je sasvim OK, prevideo sam.
[ savkic @ 18.10.2006. 08:34 ] @
> Nema opravdanja da se kod korisnika instalirati 20+ MB softvera (server)
> zbog 1MB aplikacije i podataka.
Ne mora stavljati Oracle, MS SQL, MySQL ili druge "veće" baze. FB embeded 1.5 je jedan dll od 1,5MB a daje pun SQL server sa svim optimizacijama čemu jedan txt fajl ne može prići ni blizu. Takođe tu je i SQLite kao što je neko već spomenuo, još manji a opet daleko bolji od običnih fajlova.
[ delalt @ 18.10.2006. 10:50 ] @
Citat: Radim u Delphiju na jednom programu slicnom recniku [ termin1 = termin2 ].
Ocekujem oko 10.000 reci.
Kolekcija termina mora biti prosiriva od strane korisnika.
. . .
Bitna je, naravno, brzina dobijanja rezultata.
Nisi napomenuo jednu važnu stvar, da li treba da radi na mreži i da više korisnika
može u isto vrijeme da pristupa podacima (da ih pretražuje, dodaje ili mijenja).
Ako je tako, onda svakako izaberi nekakvu bazu.
Što se tiče izbora baze, predviđena količina podataka ti je najmanji problem.
Veći je problem npr. na kojim sve operativnim sistemima to treba da radi (XP, win98...),
imaš li potrebu to distribuirati i na CD-u ili USB-stiku ...
Daj malo više detalja o tome.
[ sasas @ 18.10.2006. 15:30 ] @
Vidim da pretežno vlada mišljenje da bi txt bio sporiji od baze, u ovom konkretnom slučaju. Ja opet mislim da bi za neku količinu podataka do 100k reči dobro napisan program sa txt fajlovima ostavio iza sebe bilo koji db engine. Evo, ako je neko u mogućnosti neka nam da podatke (reči), možemo napisati par primera i meriti brzine (mada bi verovatno u oba slučaja pretraga trajala nemerljivo malo, reda milisekundi). Evo malo brojeva za razmišljanje:
- čovek predviđa 10k reči, ako uzmemo rezervu x10 to je 100k reči - ne zaboravite da je rečnik u pitanju i da je poprilično ograničena mogućnost rasta broja podataka, a promene strukture jednostavno nema.
- uzmimo prosečno 15 slova/reč - 1,5M slova
- na nekom modernom računaru to zauzima 0,15 - 0,30% ram-a
- na novijim procesorima, svi podaci hladno staju u keš (cca. 40% keša) :), mada nam tamo i nisu stalno potrebni
- ako podatke prilikom učitavanja sortiramo, posle se traženje reči svodi na max. stotinjak poređenja stringova
Sam db engine, ma koliko da je mali, kad se učita u ram će zauzeti više od ovoga, sama komunikacija na relaciji db<->program je sporija od tih stotinjak poređenja, ako je još između odbc/oledb/ado...uh...
Baza podataka bi bila u redu da se radi o raznorodnim upitima, koji uključuju komplikovaniju logiku, ili o višekorisničkom pristupu podacima, ali za ovako trivijalan program jednostavno ne vidim opravdanje u korišćenju dba, osim eventualno neke embedded varijante - što srki kaže, malo TStringList-a (ili nekog derivata) i problem rešen. S druge strane, lepota zero-configuration klijenta i otvorenost formata je toliko veeelika prednost kad program distribuirate na više računara. Sve ovo imho, naravno.
ss.
[ inherited @ 18.10.2006. 15:40 ] @
Mozda cu malo odstupiti od teme, ali procitao sam da se ovo moze odraditi sa TClientDataSet komponentom, .cds, .xml i na kraju sa SQLite.
Mozete li malo da me uputite:
1) kako da iz delphi -a kreiram .xml, pa da upisujem podatke u njega? Da li se to radi kao upis u .txt?
2) SQLite? Za cega se praktikuje njegovo koriscenje i da li je besplatan?
Hvala Vam unapred.
[ Bojan Kopanja @ 19.10.2006. 07:03 ] @
Evo ti za SQLite pa sam vidi da li ti odgovara: http://www.sqlite.org/
Malena, i free baza...
[ Srdjan_exe @ 23.10.2006. 19:47 ] @
Mislim da za recnik string1=string2 ne treba da bude ni govora o bazi.
Sto kaze neko ovde na danasnjem prosecnom racunaru i da ima 100.000 reci, trajanje pretrage
se bukvalno ne bi ni osetilo. Jos pozoves neki eksterni arhiver prilikom starta i zavrsetka programa
da ti taj txt ili xml sabije na jedno 20% svoje velicine i dobijes extra mali recnik.
Jedino sto bi ovde bilo interesantno cuti su neki algoritmi (predlozi procedura) za brzu pretragu stringova.
Pozdrav.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|