在数据库(SQL)和编程领域执行操作和逻辑的好处(PHP,C#...)

问题描述 投票:-4回答:1

与在其他编程语言中执行某些功能或操作相比,在数据库中执行某些功能或操作有什么好处?

例如,让我们假设有一个带有表school的mysql数据库students。然后students表具有以下属性(idnameagedob ......):通过从当前日期减去age然后将其存储在dob列中,将数据库中的age计算更好吗?全体学生?或者用编程语言计算它然后将age结果存储到数据库中会更好吗?

这里的目标是让每个学生的年龄每年自动更新。还要确保应用程序性能是一流的(包括速度)。

那么哪种方法更好?

java php mysql database oracle
1个回答
0
投票

最好的想法是只在数据库中存储DATE_OF_BIRTH。当应用程序需要知道学生的年龄时,可以使用当前日期来计算它。

至于在数据库或应用程序中进行计算是否更好,通常在SQL中应该可以在SQL中完成。鉴于我们无论如何都要查询数据,没有任何应用程序代码会比这更快

select student_id
        , date_of birth
        , floor(months_between(sysdate, date_of_birth)/12) as age_in_years
from students

该解决方案使用Oracle RDBMS功能; SQL Server或MySQL的精确语法将有所不同。


“我希望确保应用程序运行良好,快速”

Hadoopers经常谈论将计算带入数据。那不是一个新的见解,这就是SQL所做的,并且已经做了几十年。

© www.soinside.com 2019 - 2024. All rights reserved.