shurix Posted May 21, 2008 Report Share Posted May 21, 2008 Nevaru īsti izdomat ka labāk butu veidot datubāzi. Vajadzīga priekš turniru veidošanas. It kā viena tabula butu turnīra id, nosaukumam, tipam. Nakoša tabula atkal speletajiem id, turnira_id, speletajs. Bet ka man glabat izspeletas spēles? Jauna tabula kurā būtu turnīra id un spelētāja id? Un ja piedalas 4 speletaji 2 izspelē savā starpā un otri divi atkal savā tad no katras spēles viens tiek tālāk. Kā to varētu veidot? Link to comment Share on other sites More sharing options...
andrisp Posted May 21, 2008 Report Share Posted May 21, 2008 Pastāstī sīkāk par to turnīru padarīšanu. Link to comment Share on other sites More sharing options...
Delfins Posted May 21, 2008 Report Share Posted May 21, 2008 (edited) Tu domā `single elimination` principu? Tad taisi: tournament_id, game_id, parent_game_id, winner_palyer_id, level // level nozīmēs kurā leg-ā (plecā) spēlē (ātrākai atlasei un vispār lai redz) tournament_id, player_id, game_id, is_winner Būtībā biegās jāsanāk smukai piramīdai :) Pēc šitās tabulas var veidot jebkura veida piramīdas - single/double elimination Kopumā pakārtošana: Turnīrs - pieaicināties spēlētāji (players) - izspēles (games) - izspēlēs spēlētāji (game_players) - te var būt gan komandās, gan N-pleyeri - tipa tenisā pa pāriem spēlē un t.t. - pieliec klāt komandas id Edited May 21, 2008 by Delfins Link to comment Share on other sites More sharing options...
Gints Plivna Posted May 21, 2008 Report Share Posted May 21, 2008 Nevajag domāt uzreiz tabulās un kaut kādos idos. Vajag uzzīmēt uz papīra kastītes, kas simbolizē lietas, par kurām Tu glabāsi datus. Tātad Turnīri, Spēlētāji, Spēles. Tad sasrakti kastītēs iekšā tās lietas, kas šīs lietas raksturo, piemēram, turnīra nosaukums, sākuma datums, spēlētāja vārds, spēles datums. Tad savelc saites (relācijas) starp kastītēm, piemēram, spēlētājs piedalās turnīrā, spēle notiek starp spēlētāju 1 (pirmā saite) un spēlētāju 2 (otrā saite), kaut kāda atzīme, kurš ir vinnētājs, pēc spēles X nākošā ir spēle Y (t.i. norāde uz to kuru spēli spēlēs vinnētājs). Un tikai tad sāc domāt, kā tu norādīsi to, ka spēlē piedalās tieši 2 spēlētāji (droši vien 2 laukus kas norāda uz spēlētāju). Tad tev arī radīsies jautājums - kā tu gribi glabāt spēlētājus? Vai katru reizi reģistrēsi no jauna, vai kaut kā vispirms savadīsi personas un tad spēlētājs būs tikai tas, kad konktrētā personas piedalās kādā turnīrā.... Tas viss saucās datu modelēšana un to ir jāveic pirms ķeras vispār pie tabulām. Ātrumā neko labāku par šo pašlaik nevaru atrast... Gints Plivna http://datubazes.wordpress.com Link to comment Share on other sites More sharing options...
shurix Posted May 22, 2008 Author Report Share Posted May 22, 2008 Bet kaa man taisiit to "kāpšanu pa uzvaras kāpnēm"? No 16 spelētājiem paliek 8 un tad atkal 4 un beigas spēlē finālu 2. To atkal jaunā tabulā vai kā? Link to comment Share on other sites More sharing options...
Grey_Wolf Posted May 22, 2008 Report Share Posted May 22, 2008 . To atkal jaunā tabulā vai kā? taa butu ljoti mulkjiigi dariit, jo ja buus vairaak speletaju (teiksim 32 ) tad atkal naktos veidot jaunu tabulu .... pieliec klaat velvienu lauku teiksim SPELE ... un TURNIRS un tad : speletaji 16 --> SPELE ir 1 / turniirs visiem teiksim 1 8 --> SPELE ir 2 4 --> SPELE ir 3 2 --> Spele ir 4 taatad uzreiz vari ieguut vairaakus labumus ;) 1. zinaasi cik vispar speeles tika izspeletas (netkariigi no speletaaju skaita ...) 2. vienmer vareesi atlasiit VISUS uzvaretaajus / zaudetajus (pa spelem, pa turnieriim utt...) ( lielakais SPELE skaitlis buus arii Final speele ... ) Link to comment Share on other sites More sharing options...
shurix Posted May 22, 2008 Author Report Share Posted May 22, 2008 Arprāc kā man galva nestrādā uz šito lietu :D Nevar kads uz ātru roku kādu uzskatāmu piemēru uztaisīt kur būtu gan turnīri gan spēlētāji, kā arī izspelētās spēles kā tur tos uzvaretājus, zaudētājus? Link to comment Share on other sites More sharing options...
Grey_Wolf Posted May 22, 2008 Report Share Posted May 22, 2008 Nu bet dari kaa ieteica Gints Plivna Uziimee visu uz papiira , tad arii uzreiz redzeesi kas un kaa ..... Sho principu der atcereties vienmer !!! Gluzji vienkarshi Cilveks Vizualu informaciju uztver Daudzkart vieglak nekaa Rakstisku (tekstualu) .... // peimeram iedomajies kaadas organizacijas pelnjas/zaudejumu atsakaiti tabulaa no skaitliem { tas ir kaa tu paslaik megjini izdomaat} Vai Grafikaa { Tas ir taa kaa buutu jaadara } ... Kuraa gadijumaa atraak pamaniisi kljuudu ??? Link to comment Share on other sites More sharing options...
Devs Posted May 23, 2008 Report Share Posted May 23, 2008 Triviāls uzdevums! Pieņemu, ka Tev ir: * spēlētāji * spēles * turnīri Spēlētāji - tabula Speletaji ar, piemēram sekojošiem laukiem: SpeletajaID - PK Vards Uzvards Vecums ... citas īpašības Turnīri - tabula, kur saglabāt turnīrus TurniraID - PK Nosaukums Limenis ... citas īpašības Spēlētāju un turnīru saisttabula (pieņemot, ka viens spēlētājs var būt vairākos turnīros un otrādi): TurniraSpeletaji ID - PK TurniraID SpeletajaID Spēļu tabula - katra spēle var piederēt tikai vienam turnīram, savādāk nespēju iedomāties, kas tā būtu par spēli, kas attiektos uz diviem turnīriem: Speles SpelesID - PK TurniraID - FK UzvaretajaID - tā kā princips ir uzvarētājs viens vai neizšķirts, tad šeit ievada tā spēlētāja ID, kurš uzvarēja. Ja bija neizšķirts, var ievadīt šeit 0 NakamasSpelesID - ja notiek play-off, tad no divām spēlēm izriet viena - šeit var ievadīt nākamās spēles ID - ja šī spēle būs 1/4 fināls, tad nākamās spēles ID būs izrietošā pusfināla spēle. Satiksies UzvaretajaID. NorisesVieta Laiks ... citas īpašības Spēļu un spēlētāju saisttabula - viens spēlētājs var spēlēt vairākas spēles, savukārt, vienā spēlē var spēlēt vairāki spēlētāji - šī tabula būs nemitīgi atjaunojama un papildināma: SpeluSpeletaji ID - PK SpelesID SpeletajaID P.S. Ja nepieciešamas komandas, var uztaisit tabulu Komandas, uz kuru ID būs tabulai Speletaji lauks KomandasID - FK. Viens spēlētājs, tak nevar piederēt vairākām komandām. Attiecīgi pēc tam ar spēļu un turnīru tabulām saistas nevis spēlētāju tabulas ieraksti, bet komandu tabulas ieraksti. FK - foreign key PK - primary key Viss!!! Visa māksla! Atliek tikai pareizi sarakstīt pieprasījumus un viss kārtībā! :) Link to comment Share on other sites More sharing options...
Devs Posted May 23, 2008 Report Share Posted May 23, 2008 Vēl gribēju atzīmēt, ka tās īpašības var pierakstīt klāt cik vien vajag un kādas vajag, piemēram, tabulai spēle var pievienot vēl vienu lauku spēles rezultāts vai arī, ja runa iet par savāktiem, punktiem, tad SpelesUzvaretajaRezultats un SpelesZaudetajaRezultats. Arī turnīrus var saistīt ar sezonām, gadiem un arī līgām, izveidojot, ja nepieciešāms attiecīgas tabulas un pievienojot attiecīgos FK tabulai Turniri, vai arī papildus lauku. Pāris piemēra selekti priekš manis aprakstītā modeļa: 1. dabūt turnīra ar ID=8 uzvarētāja vārdu un uzvārdu: SELECT s.Vards, s.Uzvards FROM Speletaji s, Speles sp INNER JOIN SpeluSpeletaji ss ON ss.SpelesID=sp.SpelesID AND sp.NakamasSpelesID=0 AND ss.SpeletajaID=s.SpeletajaID WHERE sp.TurniraID=8 2. dabūt visas spēles no turnīra ar ID=8, kuras ir uzvarējis spēlētājs ar ID=21. (piemērā, tabula Speles ir izveidots lauks Nosaukums, kas satur spēles nosaukumu): SELECT sp.Nosaukums FROM Speles sp WHERE sp.UzvaretajaID=21 AND sp.TurniraID=8 Ja ievēro db teoriju, principā visu var izdarīt! :) Link to comment Share on other sites More sharing options...
Recommended Posts