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?
Normalisointi?
5
642
Vastaukset
- --------
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
- 692703
- 632634
- 681782
- 241617
- 201540
Tykkään susta
Elämäni loppuun asti. Olet niin suuresti siihen vaikuttanut. Tykkäsit tai et siitä91470- 151382
- 381233
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ä. Ko81197- 291131