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 :) |
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'...
|
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. |
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 ;) |
Citat:
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 |
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 :) |
Citat:
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... |
uh..
zamilsi key 27112006inter-juve ;) :D |
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: |
Citat:
|
[ EDIT: ispod ima greska, nije Zira, nego flash_back predlozio ]
mislim da je ovo sto ti je zira predlozio najbolje resenje, i meni je isto palo na pamet: 1. parsiras xml i uradis update/insert utakmica 2. utakmicama koje su pocele upises vreme i datum pocetka (tako mozes da naknadno imas ideju kad je koja uplata isla u odnosu na pocetak, i posle godinu dana ako zatreba (a timestamp uvek zatreba, pre ili kasnije) 3. Uradis select utakmica kojima nije upisan pocetak (znaci nisu jos pocele) i to je cela mudrost... |
^ Koji zira? :)
|
Onda mi je key kolona sta? Text? Pa sigurno ce biti keyova preko 30 karaktera duzine. Jel to pametno tako?
|
Ti MORAŠ da imaš bar 2 stvari:
1. ID utakmice 2. vreme početka Ako to nemaš onda ne možeš ni da imaš validnu listu, onda traži da ti to stave u taj XML. Nema šta da flag-uješ počela/nije počela, ako imaš vreme početka utakmice, samo prikažeš one koje nisu počele. Iskreno ne kapiram u čemu je problem a upravo sam pročitao sve poruke od početka. |
Ma mnogo sam nesto zbunjen zadnja dva dana :1054:
Vreme pocetka imam tako da je to reseno. ID sam napravio po savetu Dee-a tako da je i to reseno. Hvala svima na pomoci. :1064: |
koliko sam ja shvatio, problem je sto on hoce da iz xml-a:
-ubaci utakmicu u bazu -dok jos nije pocela utakmica da se prikazuje na stranici -kad se zavrsi tekma (i nestane je iz xml-a) da mu ostane u bazi da bi mogao da upise rezultat i ima history a glavni problem je shto nema unique key ..pa mora da ga pravi od datum+par |
Ne razumem kako nema unique key. Kako ćeš da se kladiš na utakmicu ako nemaš unique key. Pa čak i u štampanim listama ima key za svaku utakmicu.
Što se tiče prikaza, ti u baz ubaciš sve što imaš, a prikazuješ samo one kojima je vreme početka veće od trenutnog vremena. Pri tome se mora voditi računa kako se zapisuje vreme. U XML-u mora biti neka određena vremenska zona, znači da se ne prikazuje lokalno vreme početka već recimo GMT. |
Filozofija kljuceva u "papirnim" kladionicama je da oni ponistavaju iste kad bude novo kolo, a meni je potrebno da se ne brise zbog istorije.
Na primer kad prikazujem istoriju odigranih tiketa jednog igraca da on moze da vidi sve utakmice i rezultate unutar tih tiketa. Mada postoji "team ID" u XML-u koji je 8 cifreni broj tako kombinovano sa datumom ne mogu da omanem (imena timova se znaju nekad i promeniti). Kôd:
Primer jedne utakmice |
^ Pa imaš sve što ti treba.
Samo što je ovako formirana lista - neozbiljna. |
To poruci ovima iz GameBookersa ( xml.gamebookers.com ) :1074:
Hvala jos jednom! :1043: |
Ma oni nemaju pojma :)
Ili ti ne šalju kompletnu listu. Nego, ja sam mislio da ti to radiš za neku ozbiljnu kladionicu koja ima svoje bookmaker-e. |
Ma jok ovo je neki licni projekat sa kojim nameravam da nadogradim svoju internet imperiju :D
P.S. Ja sam nekad radio kao bookmaker u jednoj domacoj kladji i taj posao se sastoji od skidanja kvota i malog korigovanja po osecaju |
aaaaaaaaa, pa što ne kažeš... ja mislio radiš za neku kladionicu pa se čudim da su tako neozbiljni :)
|
Vreme je GMT +2. Trenutno vreme je 07:00. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.