2012-12-07 50 views
1

共有四個地區,總記錄數超過100萬條。我是否應該爲每個地區創建一個包含區域列或表格的表格並將它們組合以獲得最高等級?MySQL中每個區域的表格

如果我將所有四個區域組合在一起,那麼我的列都不會是唯一的,所以我還需要爲我的主鍵添加一個id列。否則,name,accountId & characterId將作爲候選鍵,或者我應該只是添加一個id列反正。

Table: 
---------------------------------------------------------------- 
| name | accountId | iconId | level | characterId | updateDate | 
---------------------------------------------------------------- 

編輯: 我應該考慮通過region_id分區表?

回答

0

因爲所有記錄都與特定區域相關,所以3NF(例如All-Regions)中包含regionId和其他屬性的單個數據庫表應該可以工作。

0

通常數據庫設計的正確答案是「它取決於」。

首先,(恕我直言)一個好的主鍵應該屬於數據庫,對用戶進行:)
所以,如果accountIdcharacterId是用戶可編輯或突出顯示給用戶,他們不應該無論如何用於表的主鍵。並且使用name(或任何其他用戶生成的字符串)作爲密鑰只是要求麻煩。

至於這些地區,試着去理解記錄的使用方式。

  • 大多數查詢是否只使用一個區域,或者大多數查詢會使用跨區域的數據?
  • 有可能不同地區的模式可能會出現分歧嗎?
  • 類似數據會有不同的使用場景嗎? (例如,不同區域的不同電話號碼模式)

底線,兩種方法都可行,讓你的數據告訴你哪種方法更易於管理。