ठीक है, मैं इसका मुकाबला करूंगा: मैं डेटाबेस में एक बेहतर कोडर हूं, और मैं सोच रहा हूं कि "सर्वोत्तम प्रथाओं" पर विचार SQL क्वेरी बनाम "सरल" गणनाओं के विषय में कैसे हो सकता है? कोड, जैसे कि यह MySQL उदाहरण (मैंने इसे नहीं लिखा था, मुझे बस इसे बनाए रखना है!) - यह उपयोगकर्ता नाम और अंतिम घटना के रूप में आयु देता है।
SELECT u.username as user,
IF ((DAY(max(e.date)) - DAY(u.DOB)) < 0 ,
TRUNCATE(((((YEAR(max(e.date))*12)+MONTH(max(e.date)))
-((YEAR(u.DOB)*12)+MONTH(u.DOB)))-1)/12, 0),
TRUNCATE((((YEAR(max(e.date))*12)+MONTH(max(e.date))) -
((YEAR(u.DOB)*12)+MONTH(u.DOB)))/12, 0)) AS age
FROM users as u
JOIN events as e ON u.id = e.uid
...
कोड में "भारी" उठाने की तुलना में:
प्रश्न:
SELECT u.username, u.DOB as dob, e.event_date as edate
FROM users as u
JOIN events as e ON u.id = e.uid
कोड:
function ageAsOfDate($birth, $aod)
{ //expects dates in mysql Y-m-d format...
list($by,$bm,$bd) = explode('-',$birth);
list($ay,$am,$ad) = explode('-',$aod);
//Insert Calculations here
...
return $Dy; //Difference in years
}
echo "Hey! ". $row['user'] ." was ". ageAsOfDate($row['dob'], $row['edate']) . " when we last saw him.";
मैं इस तरह के एक साधारण मामले में बहुत यकीन है कि यह बहुत अंतर नहीं होगा (डरावनी भावना के अलावा जब मुझे पहले वाले प्रश्नों की तरह बदलाव करना होगा), लेकिन मुझे लगता है कि इससे मुझे स्पष्ट होता है कि मैं क्या हूं ' मैं देख रहा हूँ
धन्यवाद!