讓我們玩兩個玩家(或團隊)玩的遊戲,其中結果由兩個玩家(例如足球)的分數表示。在關係數據庫中存儲這種遊戲的結果是否有一種慣用的方式?雙人遊戲的數據庫模式
我想出了兩個可能的模式,其中沒有一個似乎足夠普遍。每場
1.一種行
將有一個表games
與列game_id, winner, loser, winner_points, loser_points
和每個遊戲將被存儲在表中的一行。
- 當人們需要遍歷所有遊戲時,這種表示非常棒。
- 爲玩家統計計算是困難的(例如計算點的數目平均爲玩家)每場
2.兩排
會有一個games
表列game_id, player, opponent, player_points, opponent_points
。每場比賽將存儲在表中的兩行,他們將有相同的game_id
。
- 通過所有遊戲迭代是不平凡的,但仍然很容易
- 爲玩家計算平均分是簡單
SELECT AVG(player_points) FROM games WHERE player = some_player
- Unfotunately在表中的數據現在是多餘的