推 madturtle:感謝回覆! 11/26 08:55
: 推 Foremanytz:nested/sub table,各物品有 modinfo 和baseinfo_index 11/25
: 推 a1234957: char_id, Item_id, amount 11/25
: → a1234957:DB 11/25
: → a1234957:存數字就好了 操作頻繁的資料用文字存 會死掉 11/25
A+B
bigint char_id
int item_id
int amount
int location
存的時候 不需要存文字..
不管SQL存文字, 方不方便
但是內部操作, 用文字判斷, 就很耗效能.
程式邏輯, 使用道具, 一定是檢查item_id, 而不是item_name.
從DB抓出來, 如果還要經過轉換 Item_name轉成Item_id, 是不需要的.
況且就儲存空間, 你存int跟存char(20)... 當然是存int比較省.
這種存法, 的確是從一大張裡面, 撈出來你這個角色的狀況.
如果太慢, 增加SQL Server那台的效能就好.
[SQL是很快的, 不夠快, 你可以買台十幾萬的電腦讓他很快]
這種存法的優點, GM要查詢會很方便.
MMO, 除了速度效率外, 也要考慮WebGM的方便性.
※ 引述《madturtle (旅者‧愚人‧夢想家 )》之銘言:
: 標題: [程式] 網頁RPG 物品欄實做問題
: 時間: Thu Nov 25 03:26:43 2010
:
: 目前想到兩種方法:
:
: a)角色視為主檔,每個道具做成角色的明細檔,
:
: 做出來大概就是
:
: 所屬角色(key) 物品名稱 數量
: madturtle-1 補血藥 10
: madturtle-2 含笑半步顛 100
: 5566-1 補血藥 99
: 阪田銀時-1 長老 2
: 阪田銀時-2 補血藥 5
:
: 但如果每個角色平均擁有50個道具,這樣每次讀取道具欄,
:
: 不就要從一個超大的明細資料表中去查詢?
:
: 感覺應該是合理的做法,但伺服器負擔會不會過大?
:
:
: b)每個物品設定代碼,用文字&分隔符號的方式存在角色資料庫
:
: 例如: a0001,10,b0901,1,a5566,99
:
: 讀出來變成:補血藥x10 長老x1 發霉的麵包x99
:
: 似乎是可行,但這樣一個欄位就要存超多東西...
:
:
: c)以上皆非
:
: (感覺應該olg都有通用解法了...希望各位高手不吝賜教)
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 59.124.8.181
: 推 elfkiller:天堂私服內部資料庫用的方式跟a一樣,MySQL 11/25 04:36
: 推 Foremanytz:nested/sub table,各物品有 modinfo 和baseinfo_index 11/25 06:56
: 推 a1234957: char_id, Item_id, amount 11/25 08:39
: → a1234957:DB 11/25 08:39
: → a1234957:存數字就好了 操作頻繁的資料用文字存 會死掉 11/25 08:40
: → a1234957:SELECT慢 UPDATE 用DELETE & INSERT可能還比較快 11/25 08:41
: → s0300453:我個人是用a的方式 11/25 10:19
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.208.83.246