Normalisointi?

--------

Hieman tuo normalisointi hakusessa joten voiskos joku viisaampi auttaa vähäsen. Tässä on erään tapahtumakalenterin tauluja.

Tapahtuma
id | tapatuma

Paikka
id | paikka

Tapahtumat
id | tapahtuma_id | paikka_id | alkaa | loppuu

Tuollee on tällähetkellä, mutta kun katselee dataa niin alkaa ja loppuu (molemmat datetime) ovat aika usein toistoja (noin 45% toistoja), jotenka olisikos parempa tehdä näin


Tapahtuma
id | tapatuma

Paikka
id | paikka

Aika
id | aika

Tapahtumat
id | tapahtuma_id | paikka_id | alkaad(aika_id) | loppuu(aika_id)

Vai onko tuo jo liioittelua normalisoinnissa?

Mutta mimmosella kyselyllä saan sitten tapahtumat jotka alkaa vaikkapa 2.3.2007 jälkeen sekä loppuu ennen 27.3.2007?

5

642

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • --------

      Ja muutenkin otetaan vinkkejä miten tuo oikeaoppisesti kuuluisi tehdä.

      • normalisoida

        Mielestäni suunnitelma yksi ihan hyvä. Riippuen mitä infoa tapahtumiin liittyy, eli jos ihan keraluontoisia, voisi erillisen tapahtumataulunkin jätää pois.


      • --------
        normalisoida kirjoitti:

        Mielestäni suunnitelma yksi ihan hyvä. Riippuen mitä infoa tapahtumiin liittyy, eli jos ihan keraluontoisia, voisi erillisen tapahtumataulunkin jätää pois.

        Kiitoksia vastauksesta, sama tapahtuma saattaa toistua useastikin eriaikoina ja paikoissa. Tässä tän hetkist tietoa paljon dataa noissa tauluissa on jotta saa käsityksen paljon noita toistoja onpi.

        Tapahtumat: 3458kpl
        Tapahtuma: 206kpl
        Paikka: 187kpl

        Kokeilimpa huvikseni tehdä seuraavanlaisen taulun
        Ajat
        aika_id | alkaa | loppuu

        Jolloin erillaisia tietoja tuli
        2669kpl

        Mutta taitaa tuo ensinmäinen suunnitelma olla yhä se parhain?

        Mistäs löytyisi kunnon tietoa normalisoinnista?
        Googlella kyl yritin mut eipä pahemmin mitään löytynyt, kaik semmosia ylimalkasia ja perusteit.


    • Nyksy

      Toi suunnitelma 1 on ihan hyvä... se alkamis ja loppumisaika kannattaa tehdä timestampilla jos haluut esim minuuttien tarkkuudella tai sitten jos päivän tarkkuus riittää niin määrität sen alkamisen ja loppumisen alkioiden tyypiksi päivämäärän. Jälkimmäisellä tavalla myöskin tietyn päivän jälkeen tapahtuneet asiat on helppo hakea perus kyselyillä... esimerkiksi näin "select *; from tapahtumat; where alkaa > 2-3-2007 and loppuu < 27-3-2007;" Syntaksi sitten vaihtelee tietokanta ohjelmittain mutta periaate tosta varmasti selviää... :)

      • --------

        Kiitoksia vastauksest. Juu nuo alkamis ja loppumis ajat ovat datetime tyyppisiä joilla toimii myös nuo aikajutut.

        Tietokantana on MySQL 5


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Miksi et irrota otettasi

      Suhteeni?
      Ikävä
      69
      2703
    2. Koko ajan olet

      Senkin suhteen kiusannut. Halut on ihan mielettömät olleet jo pitkään
      Ikävä
      63
      2634
    3. Muutama syy

      Sille miksi IRL kohtaaminen on hänelle vaikeaa
      Ikävä
      68
      1782
    4. Onko kaivatullasi

      Hyvä vai huono huumorintaju?
      Ikävä
      24
      1617
    5. Estitkö sä minut

      Oikeasti. Haluatko, että jätän sun ajattelemisen? :3
      Ikävä
      20
      1540
    6. Tykkään susta

      Elämäni loppuun asti. Olet niin suuresti siihen vaikuttanut. Tykkäsit tai et siitä
      Ikävä
      9
      1470
    7. Onko kaikki hyvin, iso huoli sinusta

      Miten jakselet? Onko sattunut jotain ikävää. Naiselta
      Ikävä
      15
      1382
    8. Millainen meno

      Viikonloppuna? Mulla hirvee vitutus päällänsä. Onko muilla sama tunne??
      Ikävä
      38
      1233
    9. Onko meillä

      Molemmilla nyt hyvät fiilikset😢ei ainakaan mulla mutta eteenpäin on mentävä😏ikävä on, kait se helpottaa ajan myötä. Ko
      Ikävä
      8
      1197
    10. Tiedätkö tykkääkö

      Kaivatustasi siinä mielessä joku muukin kuin sinä itse
      Ikävä
      29
      1131
    Aihe