Minkälainen tietokantarakenne olisi sopivin, jos tarkoituksena on tallentaa suomalaiset ja ruotsalaiset nimipäivät?
Samana päivänä voi olla useammalla henkilöllä nimipäivä, ja ruotsalaisilla on ihan eri nimipäivät.
Miten sarakkeet ja rivit kannattaisi valita?
Samana päivänä voi olla useammalla henkilöllä nimipäivä, ja ruotsalaisilla on ihan eri nimipäivät.
Miten sarakkeet ja rivit kannattaisi valita?
Vastaukset 1
Vanhimmat
Vaikkapa tämän suuntanen
ID | PÄIVÄ | NIMI | KIELI
1 | 21.07.2006 | Neea | 1
Sarakkeiden tyypit vaik näin, pisteen jälkeen MySQL kun et kertonu mihkä kantaan teet.
id = numereelinen tyyppi. SMALLINT
päivä = päivä tyyppi. DATE
nimi = teskti. VARCHAR(30) tai TEXT
kieli = numereelinen. ENUM
Tuosta sit on helppo hakea haluttu
SELECT * FROM nimipäivät WHERE DATE_FORMAT(päivä, '%d%c') = DATE_FORMAT(NOW(), '%d%c') AND kieli = 1
Tuo palauttaa tämänpäivän nimipäivät suomessa. Tuo esimerkki sit mietitty nopeesti joten paremminkin vois tehä.
Kenties päivä kannattaisi pistää numereeliseen, jolloin voi olla hitusen nopeemp, kun ei tarttis päivämuunnost tehä. Päästäisiin WHERE 505 = päivä AND kieli = 1
Tai DATE_FORMAT(NOW(), '%c%d') = päivä
Toisaaltaan jos teet muunlaisia hakuja niin päivä kannattaa ehkä pitää kuitenkin päivämääriin tarkoitetussa tyypis. Tällöin voit pistää jotain vuosi erikoispäiviä jne...