Tulipas tässä yö lukemisena vilkaistua erästä sqlää käsittelevää teosta, siinä oli esitelty tapa muokata ehtolauseilla sisältöä suoraan tietokannan puolella kyselyssä.
Esim
SELECT * ,
CASE
WHEN lisatty = now()
THEN 'Tänään'
WHEN lisatty = ADDDATE(NOW(),-1)
THEN 'Eileen'
ELSE lisatty
END AS paiva
FROM .............
Joten kysymys kuuluukin, onko datan pienoinen muotoilu jo tietokannan puolella järkevää/tehokasta, vai kannattaako suosiolla muotoilut scriptin puolelle?
Esim
SELECT * ,
CASE
WHEN lisatty = now()
THEN 'Tänään'
WHEN lisatty = ADDDATE(NOW(),-1)
THEN 'Eileen'
ELSE lisatty
END AS paiva
FROM .............
Joten kysymys kuuluukin, onko datan pienoinen muotoilu jo tietokannan puolella järkevää/tehokasta, vai kannattaako suosiolla muotoilut scriptin puolelle?
Vastaukset 4
Vanhimmat
Minulle on ainakin opetettu että mahdollisimman paljon tietokannan puolella.
Kyllähän esim tuo esimerkkisi säästää paljon aikaa
Laittaisitko kirjan nimen tänne niin voisi hankkia sen, sillä minulle tuollainen case tapaus oli ihan uutta ja toimi hyvin ainakin Mysql:llä
Niin minullekkin on opetettu ja olen niin oppinutkin, että mahdollisimman paljon asioita tietokannan puolella, mutta samalla on korostettu, että tietokanta on vain tietovarasto ei muuta. Joten on niin ja näin pitäisikö dataa edes muotoilla yhtään tietokannan puolella.
Nopeudesta olisi vielä kiva tietää sen verran, jos noita ehtolauseita tulee kymmeniä, niin silloin taitaa nopeus etu kallistua scriptin puolelle array tapaan siis luotellaan sanat ja sit vain $sanat[$sanaid] Voi kun ohjelmointi olisi helppoa, jos tapoja olisi vain yksi eikä tuhansia erillaisia ;)
Kirja on SQL-Opas (Ari Hovi) ISBN 951-846-228-3 vaikuttaa todella mielenkiintoiselta ja ihan asialliseltakin, tommosen voisi jopa ostaakin itselleen, kirjastosta kun on lainattu. Esimerkit monelle tietokannalle joka on hyvä asia.
Toinen kirja mikä kannattaa ainaskin lukasta on indeksoinnin perusteet tai jotain sinnepäin, sisältää paljon teknistä löpinää kannan toiminnasta ja indeksien määrittelemisestä/toiminnasta. Tylsähkö, mutta hyötyy jos lukee kunnol ajatuksen kanssa.
Kun päätetään mihin logiikkaa laitetaan yksi tärkeä tekijä on tietysti se, pitääkö systeemin toimia/olla portattavissa erilaisille kantamoottoreille. Mitä enemmän logiikkaa rakennetaan kannan puolelle, sitä enemmän sinne yleensä tulee kantaspesifisiä juttuja joiden porttaus on hieman haastavaa.
Kiitoksia, käytetäämpäs sit vertailuja vastaisuudessa kannan puolella mikäli se on vain mahollista