PHP開發基礎教程之表關係講解及資料庫的安裝
學計算機的男孩、女孩現在都蠻多。特別是80、90後網路原著民,很多人都特別愛玩遊戲。我們透過遊戲裡面的使用者裝備資訊來講解表的關係。
銀行提款、轉帳、發紅包也是我們日常中最常用銀行卡操作,我們也用銀行卡的存取來講解表的關係。
遊戲裡的裝備與使用者的關係
在遊戲裡面的某個人物有頭盔、衣服、靴子、武器、項鍊。
並且,每一個不同的武器都會增加上不同的攻防值。那我們就可以這樣來模擬遊戲的表設計。
註:以下僅為了讓大家更理解遊戲裡、使用者和裝備的關係。
用戶表
#裝備表
使用者表中骷髏王帶上了裝備表中編號為1(死亡面具)和使用了編號為6(魔棒)的武器。 而使用者3(半人馬),使用了裝備表中編號為3(的速度之靴)和7(幽魂權杖)。 這樣就實現了遊戲中某些使用者戴上了裝備。如果使用者的行和列資料裡面沒有這個選項的話,就沒有這個資料。
透過裝備的屬性值,與使用者等級屬性值相加就實現了使用者穿上裝備好的回血、防禦值增加等不同的效果。
銀行開戶、取現與轉帳
我們來透過表格的方式來模擬:
上表中設計了使用者的銀行卡ID、卡號、密碼、是否凍結和餘額。- 場景模擬:
- 用戶插入卡片、輸入密碼正確後。則可以取錢######社會工程學中,人們喜歡用相同的密碼。因此,使用者的密碼必須要進行再次加密,且不可逆向解密。因為害怕看到了某個使用者的密碼後,就用這個密碼去嘗試使用者的其他銀行卡。 ###
我們自行規定:凍結狀態可以設定為0(未凍結) 和 1 (凍結了)。如果銀行收到法院的通知。則將凍結狀態設為1。有錢也不讓拿錢。 (這塊業務邏輯需要在程式中實作)。
用戶若取錢了,或是存錢了將用戶的餘額增加或減少。同時將記錄,記錄至交易流水中。
交易流水錶
#每當用戶的餘額改變的時候,我們都會忠實的記錄到交易流水錶。讓交易可查、可追述。
這樣就模擬了銀行的凍結、取現、存錢等流程。
附註:
密碼必須使用md5等加密方式幫使用者進行加密。使用者輸入原密碼如:123456。我們使用md5將用戶輸入的123456加密後與資料庫的密碼進行比較。
一致則密碼通過。不一致則使用者將密碼輸入錯誤了。
這樣就實現保證使用者密碼安全,防止內部人員洩漏使用者密碼的可能性。
更多的密碼知識,我們在下冊和進階項目中更多的為大家講解。
資料庫的安裝
#我們的整合安裝套件已經包含了MySQL,大家直接使用就可以了