Topic: Kiek metu jei zinom gimimo data - apskaiciavimas be php
Susiduriau su tokia keista dilema. Kam daryti funkcijas su php jei iskarto tapati galima padaryti su MySQL, bet ką laimiu aš? greitį, našumą, saugumą? Spėju, kad su php atlikti tam tikrus skaičiavimus saugiau nei su MySQL funkcijom. Ar aš klystu. įdomu būtų išgirsti nuomonę iš expertų. Ką patartumėte - Ar atlikinėti skaičiavimus kaip įmanoma dažniau naudojantis MySQL ar geriau duomenis apdoroti atskirai (su PHP).
štai toks pavyzdėlis:
Vartotojas formoje nurodo savo gimimo datą kuri yra saugoma MySQL'e tokiu formatu: yyyy-mm-dd (metai-menesis-diena)
Norėdamas apskaičiuoti vartotojo amžių pasidariau tokią PHP funkciją:
function amzius($data) {
if (!isset($data) || $data == '' || $data == '0000-00-00') { return "N/A"; }
else {
$data = explode ("-", $data);
$amzius = time() - mktime(0,0,0,$data['1'],$data['2'],$data['0']);
$amzius = date("Y",$amzius) - 1970;
return $amzius;
}
}
Tačiau ar nebūtų protinga visą tą skaičiavimą atlikti su MySQL ir išvesti iškarto apskaičiuotą vartotojo amžių? Užklausa kuri gražina amžių atrodo maždaug taip:
SELECT
`id`,
IF(gimimo_data='0000-00-00','N/A',YEAR(FROM_DAYS(DATEDIFF(CURDATE(),gimimo_data)))) AS 'amzius'
FROM
`users`
Kokie vienokio ir kitokio būdo pliusai ir minusai gal užklausa neprotingai padariau bet ji veikia.