Ravitulokset tietokantaan, suunnittelua

Viestiketju alueella 'Ohjelmointi' , aloittaja Aramis, 24.07.2006.

  1. Aramis

    Rekisteröitynyt:
    15.07.2001
    Viestejä:
    231
    Miten kannattaisi tämmöisten linkkien päässä (http://www.hippos.fi/hippos/tulokset/o20060722.php) olevat tulokset laittaa tietokantaan. Olen surkea tässä suunnittelussa. Taulu nimeltä data ei ainakaan oikein toimi järkevästi kun pitää luetella kaikkien sijoittuneiden nimet, ohjastajat ja kertoimet, ja jotenkin vielä pitäisi erikseen yksittäisten lähtöjen pelivaihdot jne. saada talteen, miten kannattaisi tehdä?

    Tein nyt alustavasti näin:

    CREATE TABLE ravit {
    id
    rata_id
    paiva
    PRIMARY KEY (id)
    FOREIGN KEY(rata_id) REFERENCES rata(id)
    }

    CREATE TABLE rata {
    id
    nimi
    PRIMARY KEY (id)
    }

    CREATE TABLE lahto {
    id
    ravi_id
    PRIMARY KEY (id)
    FOREIGN KEY(ravi_id) REFERENCES ravit(id)
    }

    CREATE TABLE data {
    id
    lahto_id
    hevosen_sijalla_1_nimi
    hevosen_sijalla_1_ohjastaja
    hevosen_sijalla_1_kerroin
    hevosen_sijalla_2_nimi
    hevosen_sijalla_2_ohjastaja
    hevosen_sijalla_2_kerroin
    .
    .
    .

    PRIMARY KEY (id)
    FOREIGN KEY (lahto_id) REFERENCES lahto(id)
    }

    [signature]""If Microsoft releases something that doesn't suck, it will be Microsoft Vacuum Cleaner.""[/signature]
     
  2. Aramis

    Rekisteröitynyt:
    15.07.2001
    Viestejä:
    231
    Vielä taulut "hevonen" ja "ohjastaja", sitten "data"-tauluun vaan sija1_hevonen_id, sija1_ohjastaja_id jne? Menee siltikin sekavaksi. Miten sitten saa kyseltyä vaikkapa sijalle 3 tulleiden hevosten keskimääräisen kertoimen?
    [signature]""If Microsoft releases something that doesn't suck, it will be Microsoft Vacuum Cleaner.""[/signature]
     
  3. cemo

    Rekisteröitynyt:
    19.01.2002
    Viestejä:
    268
    Eiks toi data ois järkevämpi toteuttaa niin, että laittaa vain nimi, ohjastaja, kerroin ja sijoitus, että ei tarvitse joka sijalle tehdä omia sarakkeita?

    Ja mitä tuohon sijan kolme keskimääräsiin kertoimiin..tuolla minun ehdottamallani taulurakenteella vaikka jotenkin näin:
    SELECT count(*) as maara, SUM(kerroin) as kertoimet FROM data WHERE sijoitus = 3;

    Ja jakaa vain summan määrällä..
    [signature]AMD 64 3700+ San Diego : MSI K8N Neo2 Platinum : Club3D X800 Pro : Team Xtreem pc3200 1GB kit 2.2.2.5 BH-5 : LG1715S
    iBook : 933mhz G4 : 14[/signature]
     
  4. Aramis

    Rekisteröitynyt:
    15.07.2001
    Viestejä:
    231
    Joo vois olla järkevää näin tosiaan:

    CREATE TABLE data {
    id
    lahto_id
    nimi
    ohjastaja
    sijoitus (saa olla null jos hevonen hylätty = ei sijoitusta)
    voittajakerroin
    PRIMARY KEY (id)
    FOREIGN KEY (lahto_id) REFERENCES lahto(id)
    }

    Entäs miten sitten sijoittelisi yhden lähdön "koontiedot" kuten lähdön voittaja-/kaksaripelin vaihto ja kaksarikerroin, jotka siis kuuluvat lähtöön kokonaisuutena?

    Tarviiko/voiko noita foreign key:ta jotenkin MySQL:ssa määritellä?
    [signature]""If Microsoft releases something that doesn't suck, it will be Microsoft Vacuum Cleaner.""[/signature]
     
  5. Aramis

    Rekisteröitynyt:
    15.07.2001
    Viestejä:
    231
    Kysyn ja vastaan itse eli lähdön voittajavaihto ja kaksarikerroin tietenkin lahto-tauluun. Foreign key:t voinee MySQL:ssakin itse create-lauseessa määritellä konsolista käsin, tosin en tiedä kun olen käyttänyt MySQL:n kanssa Navicat-työkalua.

    Oletetaan että lahto-taulussa olisi sarake "troikkakerroin", joka voi olla null jos siihen lähtöön ei ole pelattu troikka-pelimuotoa. Millä kyselyllä saisi keskimääräisen troikkakertoimen silloin, kun lähdön on voittanut lähdön suosikki eli se hevonen, jonka voittakerroin on ollut lähdön pienin? Tämä lienee jo melko haastava kysely.
    [signature]""If Microsoft releases something that doesn't suck, it will be Microsoft Vacuum Cleaner.""[/signature]
     
  6. cemo

    Rekisteröitynyt:
    19.01.2002
    Viestejä:
    268
    Ööh..mikä on troikkakerroin (jos sillä on mitään merkitystä itse toteutukseen)? Vaikuttaako vai tuo kerroin jotenkin voittajan kertoimeen..paha kyl neuvoa kun ei tiedä tarkalleen mitä toinen tarkottaa :)
    [signature]AMD 64 3700+ San Diego : MSI K8N Neo2 Platinum : Club3D X800 Pro : Team Xtreem pc3200 1GB kit 2.2.2.5 BH-5 : LG1715S
    iBook : 933mhz G4 : 14[/signature]
     
  7. BWTTuero

    Rekisteröitynyt:
    02.03.2004
    Viestejä:
    40
    Ihan vaan mielenkiinnosta, mitä meinaat Aramis väsätä? Itsekkin on tullut raveja joskus aikoinaan pelattua, ja silloin oli suunnitelmissa myös tietokantasovellus jonkun sortin tilastolliseen analyysiin, mutta eipä sitten ihme kyllä jaksanut :)
     
  8. Aramis

    Rekisteröitynyt:
    15.07.2001
    Viestejä:
    231
    Tein nyt näin, kolme taulua:

    CREATE TABLE ravit{
    id
    date
    rata
    PRIMARY KEY (id)
    }

    CREATE TABLE lahto{
    id
    ravi_id
    voittajakerroin
    voittajavaihto
    kaksarikerroin
    kaksarivaihto
    troikkakerroin
    troikkavaihto
    PRIMARY KEY (id)
    FOREIGN KEY (ravi_id) REFERENCES ravit (id)
    }

    CREATE TABLE data{
    id
    lahto_id
    nimi
    ohjastaja
    sijoitus
    kerroin
    matka
    rata
    PRIMARY KEY (id)
    FOREIGN KEY (lahto_id) REFERENCES lahto (id)
    }

    Kolme taulua, jossa ekassa tiedot raveista (päivä ja paikkakunta), toisessa tiedot yksittäisistä lähdöistä sekä se mihin raveihin ne kuuluivat, ja kolmannessa lähtöjen data eli kuka voitti, mikä oli hevosen kerroin, ohjastaja jne. Lahto-taulussa on siis kootusti ko. lähdön voittaneen hevosen voittajakerroin (periaatteessa turha sarake, koska sen voi selvittää kyselyllä kuka voitti lähdön ja mikä oli sen kerroin) ym. toteutunut kerroindata kuten kaksari- ja troikkakerroin. Data-taulussa on puolestaan hevoskohtaisesti voittajakertoimet lähdöittäin eli kaikkien hevosten, myös muun kuin voittajan.

    Onko toteutus järkevä?

    Troikka-pelimuodossa veikataan kolme lähdön ensimmäistä hevosta oikeassa järjestyksessä, tästä nimikin troikka tulee, joka viittaa kolmeen. Troikka pelataan yleensä vain yhteen tai kahteen lähtöön per ravit, joten troikkakerroin on vain harvoissa lähdöissä.

    Onko mahdollista tehdä kysely:

    Mikä on toteutuneiden troikkakertoimien summa, kyseisessä lähdössä olleiden hevosten lukumäärä, kaikkien tällaisten lähtöjen lukumäärä silloin kun lähdön on voittanut hevonen joka on ollut lähdön suosikki eli sillä on ollut pienin voittajakerroin. Vastaustaulussa pitäisi siis olla sarakkeet troikkakerroin ja hevosten lukumäärä niin sittenhän voisi laskea rivimäärän (=montako tällaista lähtöä oli). Oletuksena tietenkin että ko. lähtöön on pelattu troikkaa.

    Onko tämä mahdoton toteuttaa tällä taulurakenteella vai mahdoton kysely ylipäänsä?

    Tarkoituksena on vain vahvistaa muutamia omia ja muiden tutkimustuloksia. Ajattelin että jos ois helpompi toteuttaa tietokannalla kuin tunkemalla kaikki data Exceliin sinne sun tänne.
    [signature]""If Microsoft releases something that doesn't suck, it will be Microsoft Vacuum Cleaner.""[/signature]
     
  9. Joopa

    Rekisteröitynyt:
    10.01.2001
    Viestejä:
    566
    Värkkäsin vastaavan kerran käyttäen Access kantaa ja ASP.NETiä. Datan imurionti kantaan Hippoksen sivuilta ei tuottanut ongelmaa mutta datan tulkinta onkin sitten toinen juttu :)
    [signature]CAUTION: Before engaging mouth make sure that the brain is in gear.[/signature]
     
  10. cemo

    Rekisteröitynyt:
    19.01.2002
    Viestejä:
    268
    Eli siis troikkakerroin otetaan 3 ensimmäisen hevosen kertoimet jotka ovat tulleet maaliin ja lasketaan yhteen? Mikäs tuo troikkavaihto sarake on?
    [signature]AMD 64 3700+ San Diego : MSI K8N Neo2 Platinum : Club3D X800 Pro : Team Xtreem pc3200 1GB kit 2.2.2.5 BH-5 : LG1715S
    iBook : 933mhz G4 : 14[/signature]
     
  11. Aramis

    Rekisteröitynyt:
    15.07.2001
    Viestejä:
    231
    Ei vaan troikka on täysin itsenäinen pelimuoto, jossa siis veikataan kolme parasta oikeassa järjestyksessä. Voittajapeli taas on täysin omansa peli, joka ei siis ole lainkaan riippuvainen troikasta. Molemmissa pelimuodoissa pelinjärjestäjä ottaa kokonaisvaihdosta oman siivunsa minkä jälkeen loppuosa jaetaan pelaajilla siten että kerroin = (pelaajille jaettava jakosumma / oikein veikanneiden eurosumma) eli sitä suurempi mitä vähemmän oikeaa voittajaa/yhdistelmää on pelattu. Voittaja- ja troikkakertoimet eivät siis mitenkään periaatteessa riipu toisistaan, toki siten käytännössä kuitenkin että yleensä jos jotain todennäköistä voittajaa on pelattu paljon voittajapelissä, on sitä yleensä pelattu myös paljon troikkapelissä. Tuolta oppitunti 9: http://yritys.fintoto.fi/pelikoulu/koulu6.html.

    Käsittääkseni on mahdollista luoda kysely jolla saisi siis troikkakertoimien summan niistä lähdöistä missä lähdön voittaja on ollut voittajapelissä lähdön suosikki eli se hevonen jolla on pienin voittajakerroin ko. lähdössä. Samalla pitäisi saada selvitettyä montako hevosta tähän lähtöön on yhteensä osallistunut sekä se montako tällaista lähtöä oli.

    Jotain tän kaltasta:

    SELECT sum(lahto.troikkakerroin), data.nimi from lahto, data
    WHERE data.lahto_id = lahto.id and data.sijoitus = 1 and....

    Ei se kuitenkaan ihan näin onnistu, lisäksi pitäisi jotenkin saada ehto siitä että voittajan kerroin on ollut lähtönsä pienin voittajakerroin. Tarvitaanko alikyselyä, eikös alikyselyn voi aina kiertää jollain JOIN:illa, omassa MySQL-versiossa alikyselyt ei toimi vaan pitäis päivittää versio ylöspäin.

    Joku tämmönen ehto:

    WHERE data.kerroin = select min () JNE.

    En vaan osaa muotoilla oikeaa kyselyä...

    Niin se toikkavaihto sarake on se kokonaisvaihto kuinka paljolla toikkaa on pelattu eli tämän kyselyn kannaltahan sillä ei ole merkitystä.




    [signature]""If Microsoft releases something that doesn't suck, it will be Microsoft Vacuum Cleaner.""[/signature]
     
  12. atteco

    Rekisteröitynyt:
    14.06.2018
    Viestejä:
    1
    Milläkö menetelmällä imuroit datan Hippoksen sivuilta? Mitään suoraa rajapintaa ei näyttäis kovin helpolla löytyvän...
     

Jaa tämä sivu

Alibi
Anna
Deko
Dome
Erä
Hymy
Kaksplus
Kippari
Kotilääkäri
Kotiliesi
Koululainen
Ruoka.fi
Parnasso
Seura
Suomen Kuvalehti
TM Rakennusmaailma
Tekniikan Maailma
Vauhdin Maailma
Golfpiste
Vene
Nettiauto
Ampparit
Plaza
Muropaketti