如何在區塊鏈 (Blockchain) 上使用 Remix 部署智能合約 (Smart Contract)
上文" 區塊鏈 (Blockchain) 在供應鏈 (Supply Chain) 與企業資源規劃 (ERP) 系統扮演什麼角色? "提到區塊鏈的智能合約在企業應用上很重要,這篇就來實作一下在區塊鏈 (Blockchain) 上使用 Remix 部署智能合約 (Smart Contract)吧。
上文" 區塊鏈 (Blockchain) 在供應鏈 (Supply Chain) 與企業資源規劃 (ERP) 系統扮演什麼角色? "提到區塊鏈的智能合約在企業應用上很重要,這篇就來實作一下在區塊鏈 (Blockchain) 上使用 Remix 部署智能合約 (Smart Contract)吧。
上文談到「 什麼是區塊鏈 (Blockchain)? 可以取代資料庫嗎? 」初步的結論是 : 「區塊鏈不會取代資料庫,但是資料庫技術會與區塊鏈技術融合。」 意思就是未來的企業系統會將區塊鏈特性融合進去,例如使用區塊鏈的供應鏈系統,或是使用區塊鏈的企業資源規劃系統。 從這篇「 應用區塊鏈技術發展智慧物流之效益分析 」可以來看看,為何供應鏈系統需要區塊鏈技術?
區塊鏈 (Blockchain) 是近幾年來很熱門的話題,似乎沒有跟區塊鏈扯上關係就太落伍了。但是也因為太熱門了,所以很多奇怪的說法就出現了,變成為了區塊鏈而區塊鏈。 到底什麼是區塊鏈? 他可以做什麼? 他不是什麼? 區塊鏈是否可以取代資料庫? 我們將仔細的來解析。
現在要來做一個範例 : 歌曲資料庫的新增/修改/刪除/顯示。 首先我們先把登入登出的功能做出來。 預計要有幾個檔案 : login.php 用來顯示登入表單,以及進行登入驗證。 logout.php 用來登出,清除已登入的狀態。 check.inc.php 用來檢查是否為登入狀態。 process.php 當完成登入後的處理作業。
PHP連接MySQL有三種方式 : MySQL、MySQLi、PDO 參考資料 : https://www.w3schools.com/PHP/php_mysql_connect.asp 因為MySQL連接方式在新版7.0已經不支援,所以不建議使用 參考資料 : https://www.php.net/manual/en/function.mysql-connect.php 使用這個函數phpversion(),可以知道你的PHP版本。
(系統開發流程 : 計畫 > 分析 > 設計 > 建置 > 測試整合 > 上線&維護) 現在我們用一個實際的例子來說明系統分析與設計的過程。
需求 : 我們希望開發一個提供學校學生可以在網路上選課的系統。 (1) 首先把需求畫成「使用案例圖 Use Case Diagram」。 使用案例圖的相關資訊,可以參考 : https://www.lucidchart.com/pages/uml-use-case-diagram
(1) 建立ODBC連線 取得ODBC驅動程式並安裝 https://dev.mysql.com/downloads/connector/odbc/ Install MySQL Connector ODBC (2) 建立資料來源 (3) 啟用EXCEL的開發人員 (4) 設定巨集安全性 (5) 透過VBA使用ODBC連線MYSQL 範例一、從MYSQL抓出資料秀在EXCEL上 Sub ShowData() Range("A1:C99").Clear On Error GoTo ErrorHandler Set myCon = CreateObject("ADODB.Connection") myCon.Open "Driver={MySQL ODBC 5.3 UNICODE Driver};Server= server-ip ;Database= dbname ;User= root ;Password= yourpassword ;Option=3;" A = CStr(Cells(1, …
I 、基本觀念 問題:什麼是 Lock (鎖定) ? 答案:Lock 的主要目的是避免資料發生錯誤,把不應該進行動作的指令排除在外,並讓應該進行動作的指令能夠順利完成。 問題:什麼是Table Lock (表單鎖定) ? 什麼是Row Lock (紀錄鎖定)? 答案:表單鎖定就是將整個資料表鎖定,讓其他連線無法讀取及異動,直到資料處理完畢為止。紀錄鎖定就是將指定的紀錄鎖定,讓其他連線無法讀取及異動,直到資料處理完畢為止。 問題:InnoDB與MyISAM的鎖定有何差別? 答案:MyISAM 沒有交易功能 (Transaction),若要避免多個連線交互執行 SQL 指令,造成資料錯亂,只好使用鎖定資料表 (Table Lock) 的方式,InnoDB則可以使用Table Lock 與Row Lock。 問題:MySQL不同版本的鎖定有何差別? 答案:MySQL不同版本的鎖定原理一樣,只是語法上有些差異。 例如 : MySQL 5.5 使用 Select ... lock in share mode; MySQL 5.5 使用 Select ... for update; MySQL 8.0 還可以使用 Select ... for share…
需求~建立一個資料庫系統,紀錄公司的產品資料,並且記錄客戶的訂單、進貨、出貨、收款。 需要產出以下內容以及回答問題~ (因為答案不是只有一種,資料表結構不同,想法就可能不同) (1) 這個系統的ERD (2) 這個系統的資料表單結構(Schema) (3) 老闆想知道在某個時間區間內,哪個客戶購買金額最大?最少? 思考 : 從這個需求知道,需要一個客戶資料表(customer),以及紀錄訂購的資料表,因為order是保留字,所以我們用order_main當訂購的表頭檔,用order_body當訂購的表身檔。 為何紀錄訂購資料需要訂購的表頭檔跟訂購的表身檔呢? 要知道某個時間區間內,哪個客戶購買金額最大?最少? 需要客戶資料表(customer)、order_main 與 order_body。 某個時間區間內,哪個客戶購買金額最大?最少? --> 從客戶資料表+訂購的表頭檔+訂購的表身檔,找到加總訂購金額最大( 最少 )的客戶名稱,條件是訂購資料在特定時間區間內。 (4) 老闆想知道目前總共還有多少應收款? 應收款最多的是哪個客戶? 思考 : 從這個需求知道,訂購的價錢需要紀錄已付或是未付,這個可以用一個欄位來表示,你可以…