每個企業,都有他的企業商業規則,Business Rules。
這些商業規則,應該要獨立的存放在 MySQL資料庫中。
設計師應該要記住:商業規則不應該放在應用程式中。
商業規則,可以被應用程式使用,但不是把他寫死在營用城市裡面。
原因:
1- 商業規則是不斷發展中的
2- 情況是會改變的,例如有了新的規則
3-這個商業規則可能會使用在不同的應用程式裡面。
MySQL 和 商業規則
負責商業規則的程式設計師,要建立一個兩層的應用程式:
1 - 商業規則層
2 - 應用程式層
使用 MySQL 資料庫系統就是一個建立商業規則層的明顯選擇。
就是因為他可以使用大部分的程式語言,而且程式設計師可以:
1 - 將商業規則資訊存放在 資料表 Table中
2 - 使用 stored function/procedure 來執行商業規則。
使用 MySQL 建立好的商業規則,可以很便利的為使用各種不同的程式語言寫得贏用程式來呼叫使用。包括在網路上的應用程式。
建立簡單的 MySQL Stored Function 商業規則
商業規則本身,可以使用 MySQL的函數來建立。
很明顯的,這些規則可以使用 if.. then..else 指令來完成。
例如:根據輸入的項目,而採取不同的行動,程式:
delimiter //
drop function if exists business_rule;
create function business_rule (status varchar(50)) returns varchar(50)
deterministic
begin
declare new_status varchar(50);
if status = "new" then
set new_status = "case opened - send to engineer";
elseif status = "fixed" then
set new_status = "problem solved - inform customer";
elseif status = "nofix" then
set new_status = "problem unresolved - sent to engineer";
elseif status = "raise" then
set new_status = "problem escalated - inform manager";
elseif status = "close" then
set new_status = "case closed";
else set status = "undefined";
end if;
return new_status;
end
//
delimiter ;
這個函數,可以被應用程式呼叫使用:
echo "select business_rule('new')" | mysql -uuser -ppassword business_rules_db
這樣一來,
1. 這些商業規則,可以被不同語言的應用程式使用,或任何可以使用MySQL的應用程式
2. 商業規則可以被獨立更新或修改、增加而不需要更動應用程式。
最後,程式設計師可以有一個有力且可適應修改商業規則,而與使用他們的應用程式獨立運作。
簡單翻譯自:
https://steemit.com/utopian-io/@haig/how-to-use-business-rules-in-a-mysql-database-using-mysql-functions-to-create-two-tier-business-savvy-applications
沒有留言:
張貼留言