DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   SQL baze podataka - Sponzor: Baze-Podataka.net (http://www.devprotalk.com/forumdisplay.php?f=10)
-   -   Arhitektura nekih tabela me muci! (http://www.devprotalk.com/showthread.php?t=1923)

Dzordz 27. 11. 2006. 17:23

Arhitektura nekih tabela me muci!
 
Cao! :)

Situacija sledeca. Pravim kladionicu i kvote vadim iz XML-a koji mi daje kladionica, kako se on updateuje svakih npr. 5 minuta onda ga i ja tako citam.
Kada utakmica pocne onda se ona vise ne pojavljuje u ponudi tacnije XML-u.

Posto ja moram da imam aktivnu ponudu i da mi slucajno neko ne bi uplatio utakmicu koja ja pocela u listi koju ja izbacujem takva i ne sme da se nadje.

Napravio sam tabelu koja za ID utakmice ima int i iteratuje se sama i ja razmisljam kako da napravim najelegantnije izvodjenje. Ono sto se meni zasad cini jeste da lepo ubacim kolonu "pocela" u tabelu sa vrednoscu boolean i da svaki put kad radim update pocnem transakciju sve prebacim na "true" i onda samo kako citam XML prebacujem na "false" zavrsim transakciju i komitujem i to je to.

*Naravno dupla provera ako neko pre nego sto je pocelo pokupi listu pa uradi submit za pola sata :P

Pa ako neko ima nesto da kaze, samo napred :)

dee 27. 11. 2006. 17:30

sto na novo citanje XMLa (trenutne ponude) ne bi napravio TRUNCATE dotadasnje tabele i upis novopristiglog XMLa? i to citas vani onda kao 'trenutnu ponudu'...

Dzordz 27. 11. 2006. 17:50

Pa zato sto treba da mi ostanu utakmice u tabeli :)

Posle ja u tu tabelu upisem rezultate i to se koristi za izracunavanje tiketa i slicno.

Naravno ako neko misli da ce ovo biti naporno za server prihvatam svaku sugestiju.

flash_back 27. 11. 2006. 18:04

Nisam te bas najbolje razumeo, ali koliko kapiram tebi treba neki ‘elegantan’ nacin da utvrdis dali je utakmica pocela ili ne... Ja sam nesto slicno budzio za vesti na jednom sajticu koji sam skoro radio, stvar je simple..

napravis vest, dodelis joj validan datum koji uporedjujes sa trenutnim datumom (u tvom slicaju ti treba i time funkcija).. I napravis jednostavno uporedjenje npr: da ako je datum neke tekme manji ili jednak danasnjem + ako je pocetak iste manji ili jednak trenutnom vremenu tekma jos nije pocela (ili si mozda uhvatio prvu sekundu utakmice, sto je malo verovatno ;)).. I znaci samo ispisujes te podatke :)

I da samo pazi na GTM time, da ne omanes za h ili dva ;)

dee 27. 11. 2006. 18:06

Citat:

Originalno napisao Dzordz
Pa zato sto treba da mi ostanu utakmice u tabeli :)

Posle ja u tu tabelu upisem rezultate i to se koristi za izracunavanje tiketa i slicno.


nismo se skontali mozda :)

imas dvije tabele:

1) sve utakmice
2) trenutno aktivna ponuda

u prvoj ti ostaju sve utakmice, a za drugu radis TRUNCATE i upis kako citas XML. i iz nje generiras onda trenutnu ponudu...

uvjet za ovo je da u XMLu imas neki jedinstveni identifikator koji ce bit nekakav foreign key izmedju te dvije tablice

Dzordz 27. 11. 2006. 18:39

U stvari ja sam sebe-se malo zbunio pa mi se sad manta.

Nemam jedinstven identifikator nazalost.

Da probam malo bolje da se odrazim sa novim razmisljanjima :)

1. Hocu da kada se nova utakmica pojavi u XML da je ubacim u ponudu
2. Hocu da kada utakmica nestane iz XML (pocela je) da je izbacim iz ponude
3. Hocu da sve utakmice koje sam ikada imao u ponudi budu u jednoj tabeli u koju cu ja upisati posle rezultat


Sad kad razmisljam jedan View bi mozda bio i najbolje resenje. Ako napravim samo jednu tabelu i onda napravim View utakmica koje pocinju posle "ovog trenutka" to bi moglo da upali. (ako moze tako naravno)

E sada sam mozda nasao pravo pitanje!
Kako uz najmanje rabljenje baze da odradim tacku 1 posto bi View onda bio resenja za tacku 2. :)

Naravno sve to podrazumeva da je serveru dobro nariktan sat :1064:


Ako ovo ima ikakvog smisla drago mi je, ako ko ima ideju opet mi je drago :)

dee 27. 11. 2006. 18:50

Citat:

Kako uz najmanje rabljenje baze da odradim tacku 1 posto bi View onda bio resenja za tacku 2.
ako oces minimalno koristit bazu, zaobidji je skroz. kad citas XML, spremi ga u cache i prikazuj ponudu direktno iz njega. znaci, svakih 5 minuta citas XML i radis refresh cachea :)

i imas automatski kako na nebu tako i na zemlji :)

u tom slucaju ostaje jedino ovaj dio da imas sve utakmice koje si ikad imao u ponudi u bazi.

pa sad da razmisljam na glas:

recimo da stavis primary key da ti bude kombinacija naslov utakmice (valjda PAR koji igra) ali i datum (posto recimo utakmica kupa moze imat uzvrat u roku par dana, ali istog datuma dvoje istih ne igraju) i onda samo upisujes. one koje jos nemas u tabeli ce upisat, a one koje imas, nece radi primarnog kljuca...

kodi 27. 11. 2006. 19:29

uh..
zamilsi key 27112006inter-juve ;) :D

Dzordz 27. 11. 2006. 19:57

Pa to bi kanda nekako i funkcionisalo :)


(svakih 5 minuta)
XML -----> Tabela sa svim utakmicama

Tabela -----> View sa svim utakmicama koje nisu pocele


I prikazujem sve iz View

Cini mi se nekako izvodljivo! :1043:

Sad mi toliko jednostavno da kao da nesto ne valja. :1002:

dee 27. 11. 2006. 21:43

Citat:

Originalno napisao kodi
uh..
zamilsi key 27112006inter-juve ;) :D

sto? sta? :)


Vreme je GMT +2. Trenutno vreme je 11:52.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.