成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

Java Web開發(fā)中,業(yè)務(wù)邏輯寫在SQL里好還是代碼里好呢?有什么建議嗎?

網(wǎng)友解答: 目前大部分研發(fā)團隊都要求業(yè)務(wù)邏輯用代碼來實現(xiàn),SQL操作往往都是基本操作。用SQL來表現(xiàn)業(yè)務(wù)邏輯,也就是通過存儲過程的方式來表現(xiàn)業(yè)務(wù)邏輯是比較傳統(tǒng)的開發(fā)方案。在C/S時代很多

網(wǎng)友解答:

目前大部分研發(fā)團隊都要求業(yè)務(wù)邏輯用代碼來實現(xiàn),SQL操作往往都是基本操作。用SQL來表現(xiàn)業(yè)務(wù)邏輯,也就是通過存儲過程的方式來表現(xiàn)業(yè)務(wù)邏輯是比較傳統(tǒng)的開發(fā)方案。

在C/S時代很多邏輯的實現(xiàn)都是通過SQL來實現(xiàn)的,主要原因是業(yè)務(wù)規(guī)模和部署方式?jīng)Q定的。早期的C/S編程時代往往都是非分布式環(huán)境下的開發(fā),而且大多數(shù)情況下并不需要考慮移植性問題,此時采用SQL來完成業(yè)務(wù)邏輯是比較方便的處理方式。

采用存儲過程來完成業(yè)務(wù)邏輯最大的好處是性能會比較好,但是這也取決于業(yè)務(wù)規(guī)模的大小,如果業(yè)務(wù)規(guī)模過大,那么性能會下降的比較厲害。而早期的數(shù)據(jù)存儲規(guī)模比較小,所以采用存儲過程的方式是比較方便的。

目前的Web開發(fā)已經(jīng)到了大數(shù)據(jù)時代、云計算時代,業(yè)務(wù)類型和業(yè)務(wù)規(guī)模都有了較大的變化,尤其是大數(shù)據(jù)時代下NoSql數(shù)據(jù)庫的廣泛采用,使用SQL語句來完成業(yè)務(wù)邏輯的情景就更少了。而且,目前的程序大部分都是分布式方式,采用Sql存儲過程的方式來處理業(yè)務(wù)邏輯會非常麻煩,而且會導(dǎo)致整個項目的移植性和可讀性都嚴重下降。

目前在傳統(tǒng)企業(yè)的開發(fā)團隊中采用Sql來處理業(yè)務(wù)邏輯的情況比較常見,因為大部分傳統(tǒng)企業(yè)的數(shù)據(jù)庫還依然是關(guān)系型數(shù)據(jù)庫,而且不存在移植性要求,這種固定場景下的開發(fā)是完全可以使用Sql來處理業(yè)務(wù)邏輯的。未來使用Sql處理業(yè)務(wù)邏輯的情況也有一定的應(yīng)用場景,所以學(xué)習(xí)存儲過程的編寫還是有一定必要的。

我的研究方向是大數(shù)據(jù)和人工智能,目前也在帶大數(shù)據(jù)方向的研究生,我會陸續(xù)在酷米上寫一些關(guān)于大數(shù)據(jù)方面的文章,感興趣的朋友可以關(guān)注我的酷米號,相信一定會有所收獲。

如果有大數(shù)據(jù)方面的問題,也可以咨詢我。

謝謝!

網(wǎng)友解答:

寫在SQL里面

優(yōu)勢:

* 性能較高

* 復(fù)雜查詢實現(xiàn)起來更直接簡單。

劣勢:

* 數(shù)據(jù)字段變化,重構(gòu)麻煩。

* 腳本邏輯太多的時候,維護很麻煩。

* 復(fù)用設(shè)計更麻煩。


相對的如果通過ORM操作

優(yōu)勢:

* ORM一般適配了多種關(guān)系數(shù)據(jù)庫,便于切換不同庫(這個在開發(fā)階段有可能用)

* 配合緩存使用,設(shè)計合理的話速度不會差異太大。

* 更自由地設(shè)計服務(wù)架構(gòu),比如分布式鎖的使用。

劣勢:

* 出于性能考慮,需要確認最終轉(zhuǎn)換的SQL是否合理(這個說實話也不算劣勢)。

* 復(fù)雜查詢表達能力不如SQL直觀。


一般我會折衷,復(fù)雜的統(tǒng)計查詢之類的用存儲過程或者視圖,其它的ORM。有些場合還會搭配Mongodb之類的Nosql。

標簽: