[系統] 線上遊戲資料庫

看板Database作者 (兔子)時間12年前 (2012/03/26 14:56), 編輯推噓5(506)
留言11則, 7人參與, 最新討論串1/1
是FB那種養成/經營遊戲 原本我是將每位玩家的資料都做成資料表 例如說玩家1和玩家2的擺飾資料表 擺飾_玩家1 ┌───┬───┬───┬───┐ │物件 │X座標 │Y座標 │顯示 │ ├───┼───┼───┼───┤ │桌子 │100 │150 │true │ ├───┼───┼───┼───┤ │椅子 │90 │180 │true │ └───┴───┴───┴───┘ 擺飾_玩家2 ┌───┬───┬───┬───┐ │物件 │X座標 │Y座標 │顯示 │ ├───┼───┼───┼───┤ │桌子 │200 │150 │true │ ├───┼───┼───┼───┤ │椅子 │-1 │-1 │false │ └───┴───┴───┴───┘ 但沒想到現在玩家人數暴增 (應該有很多只是創了帳號就不玩的那種) 所以整個資料庫中都是資料表 每次維護時都要一段時間來載入資料庫 請問我是不是應該改成這樣... 擺飾 ┌───┬───┬───┬───┬───┐ │玩家 │物件 │X座標 │Y座標 │顯示 │ ├───┼───┼───┼───┼───┤ │玩家1 │桌子 │100 │150 │true │ ├───┼───┼───┼───┼───┤ │玩家1 │椅子 │90 │180 │true │ ├───┼───┼───┼───┼───┤ │玩家2 │桌子 │200 │150 │true │ ├───┼───┼───┼───┼───┤ │玩家2 │椅子 │-1 │-1 │false │ └───┴───┴───┴───┴───┘ 會比較好? -- ◤ __ \__ ◢◤◢◤ ψhirabbitt 我們愛 ◤ ◢███◣ ▄█▄▄ ◢███◣ █████ ▄▄ █████ 這就是為什麼我們的愛 因為神先愛我們 ██ ███ ██╱╲ ●◥█████◣● 和世人不一樣 ◥╱╱ ● ◥████ ˇ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.246.116

03/26 15:14, , 1F
是, 當然不能一個玩家就建一個 table
03/26 15:14, 1F

03/26 15:23, , 2F
我原本是想說 玩家1用不到玩家2的資料 分開放
03/26 15:23, 2F

03/26 15:24, , 3F
在遊戲中拿的時候比較方便 沒想到維護變得這麼困難
03/26 15:24, 3F

03/26 15:24, , 4F
所以說任何情況下都不應該這樣做嗎? 有沒有極端的例子
03/26 15:24, 4F

03/26 15:25, , 5F
像是玩家只有幾百人 但每人擁有的物件卻上百件這樣?
03/26 15:25, 5F

03/26 17:12, , 6F
哪個效能比較好?
03/26 17:12, 6F

03/26 21:41, , 7F
這個規劃方式不符合正規化,長久營運下去會有問題的.
03/26 21:41, 7F

03/26 21:57, , 8F
這種東西... 一個user就放一個 blob 就好了
03/26 21:57, 8F

03/26 22:56, , 9F
不管怎樣都請用後者...加index之後後者效能猦好
03/26 22:56, 9F

03/27 06:22, , 10F
除非你用的不是RDBMS ...
03/27 06:22, 10F

03/27 14:04, , 11F
加index之後要怎麼利用index @@?
03/27 14:04, 11F
文章代碼(AID): #1FS1C7di (Database)