MYSQL -da futbol liqa cədvəli qurmaq

salam.Burda çox suallarma cavab tapmışam inaniram bu sualmada cavab taparam. Bir futbol liqasini təsəvvür edin .Məsələn tutaq 10 klub hər gün oyun keçirməlidir.Hər klub 1 oyun. Klubların adını rəqəmlərlə ifadə etsək daha rahat olar.Tutaq 1-dən 10-a gədər rəqəmlərlə ifadə etdik. Və bələ bir cədvəl qurduq klub a | klub b 1|2 3|4 5|6 7||8 9|10 Bügün 1ile 2 , 3ile 4 ve s. klublar oyun kecirdi. Məsələn 1 bugün 2 ile oyun kecirdibsə sabah 2 den başqa hər hansı bir klubla oyun keçirməlidir.Bu ardicıllıq o gədər davam etmelidir ki klublar hər biri.diger bütün klublar ilə oynasın.Standart 10 komanda deyil, buna görədə optimal həllini istəyirəm .

Verilmiş cavablar və yazılan şərhlər (7 cavab var)

Cabbarov Sübhan (2014-12-11 20:44:24)
Elə düz yamışam. Deməli keçirilən oyunları nətirəclərin cədvəldə tutursun. o cədvələd bizə maraqlı olan komanda_1 və komanda_2 sütünlarıdı. Sql sorğumuzda belə olacaq birinci bütün komandaların id nörməri bizdə olmalıdı select cedvel1.*, cedvel2.* from cedvel1 left inner cedvel2 on (cedvel2.kodmanda_2 NOT İN (2, 8, 9, 11) and cedvel1.id=cedvel2.komanda_1) cedvel 1 komandaların cədvəlidi. cedvel2 oynanılar oyunların siyahısıdı. bu rəqəmlər is 2, 8, 9, 11 bütün komandaların id nörmələridi. Bu nömrələri ayrıca sorğu və dövra bir dəyişənə yazırmaq olar. Sql sorğunu yoxlamamışam

Messi (2014-12-11 17:19:23)
Software Developer , Mənədə lazım olan o təqvimi qurmaqdır.Siz mysql sturuktur qrulması haqda yazmısız. Mən ise liqa cədvəlinin qrulması haqda kömək istəyirəm.

Software Developer (2014-12-11 15:58:12)
Axı onsuz da əllə daxil etməyəcəksiz ki təqvimi? (ya da hansısa mənbəni parse edərək) Bütün təqvimi hər hansı yolla daxil edirsiz(tarixlər və oyunlar), liqanın cədvəli isə(siyahı, xal durumu və.s.) asan bir funksiya ilə dinamik şəkildə formalaşdırmaq olar sql ilə php-də.

Messi (2014-12-11 14:35:30)
Cavabınıza göre təşəkkür edirəm. Amma burda mənə lazım olan yazdıqınız Table 6 Oyunlar(id,komanda_1_id,komanda_2_id xanalarına komandaların idlərini liqa cedvəli formasında insert etməkdir. Yuxarda fikrimi daha aydin izah etməyə çalişdım

Messi (2014-12-11 14:30:54)
Sübhan bey , bir komanda özündən başqa hər bir komanda ilə oyun keçirdir,fərq etməz uddu ya uduzdu. Yeni 1 rəqəmi özündən başqa bütün rəqəmlərle 1 dəfə üzləşməlidir.Həmçinin digər rəqemlərde eynilə bu qaydada. bələ bir nümünə yazım [code] for($i=2; $i<10; $i++){ mysql_query ( "INSERT INTO `liqa_praqram` SET data ='".$data."', klub_a = '1',klub_b = '".$i."'"); }[code] tutaq ki bələ bir nəticə aldıq data | klub a | klub b 12\01 | 1|2 12\02 | 1|3 12\03 | 1|4 12\04 | 1|5 12\05 | 1|6 12\06 | 1|7 12\07 | 1|8 12\08 | 1|9 12\09 | 1|10 1adlı klub 9 gün ərzində hər gün 1 oyun keçirdir. bu cədvəl yalnız bir klub üçün qruldu.Mən bütün klublar üçün eyni anda bu cədvəli qurmaq isteyirem.

Software Developer (2014-12-11 10:00:42)
Optimal həll mənə görə.(Bədahətən yazıram, ciddi analiz etmədən, yəni daha optimalı mümkün ola bilər) Table 1 Komandalar(id,ad,təsvir,logo url, yaranma tarixi və.s. əsas attributlar) Table 2 Yarışma(id,ad,təsvir,il,tip,logo və.s.) Table 3 Yarış mərhələləri (id,yarisma_id,merhele_ad) Table 4 Məkanlar(id,stadion_ad,seher,yerli_klub_d və.s.) Table 5 Yarışma iştirakçıları(id, yarisma_id, komanda_id) Table 6 Oyunlar(id,komanda_1_id,komanda_2_id,tarix,merhele_id,yarisma_id,mekan_id,netice_hesab, netice_xal_komanda_1, netice_xal_komanda_2 və.s.) Bu məntiqlə istənilən yarışmanı yuxarıdakı 6-7 table ilə reallaşdırmaq olar. Köhnə və yeni yarışlar da bir birinə qarışmaz.

Cabbarov Sübhan (2014-12-11 09:38:41)
Futbol liqasınsa anlayışım olmadığı üçün tam başa düşmədim. Demək 1ci gün 1 və 2 oynadı, 2ci gün 2(qazanan tərəf) oyun keçirtməsin? bəs 3cü gün oyun keçirdə bilər? Ancaq hər iki halda cədvəldə əlavə "oynanilan" adlı xana əlavə etmək olar və bu xanada həmin komandanın keçirdiyi oyunları json formatında saxlamaq. Düzdü bu işin sürrətini biraz ləngidə bilər. Json istəməsən əlavə "oynanilan" adlı cədvəl yaradıb o cədvəldə bütün keçirilən oyunlar haqqında məlumat saxla. Məsələn 1 və 2 oyun oynadısa bu məlumatı cədvələ yaz ki 1 və 2 oyun keçirdi qalib 2 oldu. Daha sonra əsas sorğunu yazandan "oynanilan" cədvəlinə left inner mysql metdou ilə müraciət edib lazımı nəticəni almaq olar.