作者hirabbitt (兔子)
看板Database
標題[系統] 線上遊戲資料庫
時間Mon Mar 26 14:56:04 2012
是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
推 danielguo:是, 當然不能一個玩家就建一個 table 03/26 15:14
→ hirabbitt:我原本是想說 玩家1用不到玩家2的資料 分開放 03/26 15:23
→ hirabbitt:在遊戲中拿的時候比較方便 沒想到維護變得這麼困難 03/26 15:24
→ hirabbitt:所以說任何情況下都不應該這樣做嗎? 有沒有極端的例子 03/26 15:24
→ hirabbitt:像是玩家只有幾百人 但每人擁有的物件卻上百件這樣? 03/26 15:25
推 hukhuk:哪個效能比較好? 03/26 17:12
推 bobju:這個規劃方式不符合正規化,長久營運下去會有問題的. 03/26 21:41
推 alpe:這種東西... 一個user就放一個 blob 就好了 03/26 21:57
推 benck:不管怎樣都請用後者...加index之後後者效能猦好 03/26 22:56
→ iFEELing:除非你用的不是RDBMS ... 03/27 06:22
→ hirabbitt:加index之後要怎麼利用index @@? 03/27 14:04