电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

測試sql server業務規則鏈接方法

瀏覽:2日期:2023-11-03 11:36:42

有一個古老的爭論,是關于在哪里存儲應用程序業務邏輯的:是在應用程序本身的業務邏輯層中還是在數據庫層中。應用程序邏輯層的絕對支持者提出,數據庫的唯一目的就是保存數據,以備應用程序所用。提倡用數據庫來存儲業務規則的人則堅持認為,業務規則最好存儲在數據庫中,因為數據也存儲在那里,規則在那里更容易運行。而在我看來,對于存儲應用程序的邏輯來說,沒有一個“最好的地方”——它真正取決于您正在解決的業務問題。

鏈接數據庫存儲過程

如果您更喜歡將全部或一部分業務邏輯存儲在數據庫中的話,那么知道SQL Server中的一種被我稱作業務規則鏈接的技術是很有好處的。基本思想就是您可以在數據庫中運行一系列的存儲過程,這是以在您需要的時候,不同進程的元數據存儲在一個數據庫表格中為基礎的。這樣做的好處就是,規則都存儲在數據庫的程序中,并且因為存儲過程的運行是以一個表格中的值為基礎的,所以您可以改變程序執行的順序,還能夠很容易地打開或終止業務規則。讓我們來看一個例子,這樣概念會更清晰。

業務規則鏈接實例

要用我想用的方式在數據庫中執行業務規則,就必須定義元數據。下面這些信息將會以數據庫表格的形式被保存:存儲過程的名稱、業務規則運行的順序、所運行業務程序的類型和業務規則是否活動等。列表A中包括了創建表格的腳本。

在列表B中,我在BusinessLogic表中加載了數據。這些數據是稍后我將用來處理業務規則的。RunSequence是執行存儲過程的實際順序(過程被存儲在LogicProcedure字段中)。表格中還包含了一個指示符,用來表示業務規則是否為活動的。存儲這個數據讓我能夠改變規則運行的順序,或者在需要的時候打開或終止規則,而無需對代碼做出更改。要向業務邏輯系統中添加規則也十分簡單,因為所需做的就是向數據庫中添加程序,然后在元數據表格中添加需要的數據就可以了。

在列表C中,我創建了業務規則程序(例子中包含的程序是非常簡單的;但是,在現實情況中,如果需要的話,它們可以很復雜)。所有的程序中包括了相同的輸入參數;這是業務規則鏈接的一個小小的局限性。 接下來就是處理業務規則的代碼了。在列表D中,我用一個指針在表格中迭代,該表格中的記錄都保存著元數據。當可以用一種不同的循環結構來完成同一個邏輯時,用指針要簡單一些。不管是怎么樣完成的,都需要用某種類型的迭代循環和執行所需要的業務程序。運行這個代碼將執行每一個文章前面所定義的四個存儲過程。

在列表D中,有兩個主要引人注意的地方。第一個就是用來從表格中檢索記錄的select語句,所檢索的記錄中包含了處理業務規則的信息。從這個簡單的查詢中,我可以為任何類型的業務處理從BusinessLogic表中返回行。我還能保證規則是活動的,并且按照它們需要執行的順序返回。

第二個就是執行業務規則的方式。當指針迭代時,它從BusinessLogic表中檢索將要被執行的存儲過程的名稱,然后將其儲存在一個邏輯變量中。EXECUTE命令允許用戶執行存儲過程,即使該存儲過程的名稱被儲存在一個變量中。在這種方式下,調用存儲過程還使得我能夠向存儲過程中輸入所需的參數。

這使我回到了先前關于業務程序具有相同數量的輸入參數這一點。我能夠以一種相當動態的方式運行業務程序,這取決于在程序運行時BusinessLogic表中儲存了什么。但是,現在我還沒有一種方法可以動態地向業務程序輸入參數。

一種簡單的解決辦法就是保證所有的業務程序接受相同數量的參數,不管用不用它們。這種技術保證我們始終為業務程序提供所需的參數。也有其他的方法可以實現這些所需參數的輸入,但是那些不是這篇文章所要討論的。

扼要重述

如果您的應用程序在數據庫中儲存它的任何一個或全部業務邏輯,那么有可能它就是被我稱作業務規則鏈接的一個候選者。這種方法允許存儲過程在數據庫中依次運行,并且讓您能夠在需要的時候打開或終止這些業務規則。使用這種方法的一些潛在缺陷包括數據安全(執行業務程序的數據儲存在一個表格中),和向業務邏輯程序輸入參數的非動態性。如果您覺得對于您的業務問題來說,這種方法利大于弊的話,我鼓勵您嘗試一下這種方法。

標簽: Sql Server 數據庫
主站蜘蛛池模板: 机床主轴维修|刀塔维修|C轴维修-常州翔高精密机械有限公司 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 六维力传感器_六分量力传感器_模腔压力传感器-南京数智微传感科技有限公司 | 体坛网_体坛+_体坛周报新闻客户端| 食品质构分析仪-氧化诱导分析仪-瞬态法导热系数仪|热冰百科 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 书信之家_书信标准模板范文大全| 校园文化空间设计-数字化|中医文化空间设计-党建|法治廉政主题文化空间施工-山东锐尚文化传播公司 | 光泽度计_测量显微镜_苏州压力仪_苏州扭力板手维修-苏州日升精密仪器有限公司 | 软装设计-提供软装装饰和软装配饰及软装陈设的软装设计公司 | 江苏大隆凯科技有限公司 | 懂研帝_专业SCI论文润色机构_SCI投稿发表服务公司 | 查分易-成绩发送平台官网| 语料库-提供经典范文,文案句子,常用文书,您的写作得力助手 | 免费分销系统 — 分销商城系统_分销小程序开发 -【微商来】 | 陕西安玻璃自动感应门-自动重叠门-磁悬浮平开门厂家【捷申达门业】 | 实战IT培训机构_IT培训班选大学生IT技术培训中心_中公优就业 | 烟气换热器_GGH烟气换热器_空气预热器_高温气气换热器-青岛康景辉 | 武汉不干胶印刷_标签设计印刷_不干胶标签印刷厂 - 武汉不干胶标签印刷厂家 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 北京征地律师,征地拆迁律师,专业拆迁律师,北京拆迁律师,征地纠纷律师,征地诉讼律师,征地拆迁补偿,拆迁律师 - 北京凯诺律师事务所 | 防火阀、排烟防火阀、电动防火阀产品生产销售商-德州凯亿空调设备有限公司 | 100_150_200_250_300_350_400公斤压力空气压缩机-舰艇航天配套厂家 | 化妆品加工厂-化妆品加工-化妆品代加工-面膜加工-广东欧泉生化科技有限公司 | 农产品溯源系统_农产品质量安全追溯系统_溯源系统 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 青岛美佳乐清洁工程有限公司|青岛油烟管道清洗|酒店|企事业单位|学校工厂厨房|青岛油烟管道清洗 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 蓄电池回收,ups电池后备电源回收,铅酸蓄电池回收,机房电源回收-广州益夫铅酸电池回收公司 | 广西资质代办_建筑资质代办_南宁资质代办理_新办、增项、升级-正明集团 | 雾度仪_雾度计_透光率雾度仪价格-三恩时(3nh)光电雾度仪厂家 | 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 体视显微镜_荧光生物显微镜_显微镜报价-微仪光电生命科学显微镜有限公司 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 磨煤机配件-高铬辊套-高铬衬板-立磨辊套-盐山县宏润电力设备有限公司 | 北京征地律师,征地拆迁律师,专业拆迁律师,北京拆迁律师,征地纠纷律师,征地诉讼律师,征地拆迁补偿,拆迁律师 - 北京凯诺律师事务所 | 皮带机_移动皮带机_大倾角皮带机_皮带机厂家 - 新乡市国盛机械设备有限公司 | 双菱电缆-广州电缆厂_广州电缆厂有限公司 | 全自动面膜机_面膜折叠机价格_面膜灌装机定制_高速折棉机厂家-深圳市益豪科技有限公司 | 山东艾德实业有限公司| 镀锌钢格栅_热镀锌格栅板_钢格栅板_热镀锌钢格板-安平县昊泽丝网制品有限公司 | 全自动包装秤_全自动上袋机_全自动套袋机_高位码垛机_全自动包装码垛系统生产线-三维汉界机器(山东)股份有限公司 |