0
我正在開發Bukkit服務器的管理插件。我想給它禁止(正常,臨時和ip),靜音(正常和臨時)和警告玩家的功能。要存儲所有這些信息,我想使用SQL數據庫(SQLite或MySQL)。SQLite/MySQL的大表與多個小表?
信息可以以兩種方式存儲。
選項1:
4個小表:
playerlist
[ID,播放器,IP,lastlogin](用於維護誰的加入每一個球員的名單)banlist
[ (跟蹤所有靜音信息)mutelist
[id,player,creationTime,reason,endtime,type](跟蹤所有靜音信息)warnlist
[ID,播放器,警告]
這就要求我單獨查詢每個表,然後從每個個體ResultSet
解析。
選項2:
1大型表
playerlist
[ID,播放器,IP,lastlogin,banReason,banEndTime,banType,muteReason,muteEndTime,muteType,警告]
這隻需要我查詢1個大表,獲取所有必要的信息,然後可以從單個ResultSet
解析。
我想知道的是 - 總體上最好的選擇是什麼?根據我所看到的,人們的答案因人們使用數據庫的方式和大小而異。由於我不熟悉SQL數據庫,因此我不確定哪種情況會很好。
1)最小的數據冗餘:
如果我考慮將實際的數據庫文件拆分爲多個文件,是否也適用同樣的事情? (例如:banlist.db,playerlist.db等) –
是的。以上內容適用於數據庫的物理設計。 –