Java 在数据库中执行操作和逻辑的好处(SQL)与编程环境(PHP、C#……)
与使用其他编程语言相比,在数据库中执行某些函数或操作有什么好处 例如,假设有一个mysql数据库Java 在数据库中执行操作和逻辑的好处(SQL)与编程环境(PHP、C#……),java,php,mysql,database,oracle,Java,Php,Mysql,Database,Oracle,与使用其他编程语言相比,在数据库中执行某些函数或操作有什么好处 例如,假设有一个mysql数据库school,其中包含表students。然后students表具有以下属性(id,name,age,dob):是否最好像数据库中的age计算一样,从当前日期减去dob,然后将其存储在所有学生的age列中?还是最好用编程语言计算,然后将age结果存储到数据库中 这里的目标是让每个学生的年龄每年自动更新。还要确保应用程序的性能是一流的(包括速度) 那么哪种方法更好呢?最好的办法是只在数据库中存储出生日期
school
,其中包含表students
。然后students
表具有以下属性(id
,name
,age
,dob
):是否最好像数据库中的age
计算一样,从当前日期减去dob
,然后将其存储在所有学生的age
列中?还是最好用编程语言计算,然后将age
结果存储到数据库中
这里的目标是让每个学生的年龄每年自动更新。还要确保应用程序的性能是一流的(包括速度)
那么哪种方法更好呢?最好的办法是只在数据库中存储出生日期。当应用程序需要知道学生的年龄时,可以使用当前日期进行计算 至于在数据库中还是在应用程序中进行计算更好,通常您应该在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的精确语法将有所不同
“我希望确保应用程序运行良好且快速”
Hadoop开发者经常谈论将计算引入到数据中。这不是一个新的见解,SQL就是这样做的,并且已经做了几十年。在数据库中存储年龄不是一个好主意。坚持使用DOB,它可以避免很多问题。@NigelRen yea。。。我知道,但我不知道从当前日期中减去DOB是否是一个好主意,以获得存储在另一列中的学生年龄,在数据库中这样做,然后直接提取信息,还是从编程语言中这样做,我认为最好在数据库中进行这种计算,也许使用一个简单的函数来计算年龄。这意味着您从数据库返回的数据稍微少一些,并且该功能可供任何其他应用程序使用。正如Nigel提到的,存储年龄不是一个好主意。在需要的时候计算它。好的,谢谢,我只是想知道它是否会在SQL中给我带来更好的性能,而不是在应用程序中进行计算然后将其发送到SQL中存储,我只是想在SQL中进行计算,然后在应用程序请求时将其推送到前端,我希望确保应用程序运行良好且快速