這裏是我的觀點:
- 我不喜歡的兩列「玩家1」和「玩家2」的想法。當試圖獲得「傑夫」所玩的所有遊戲的列表時,您必須檢查「玩家1」和「玩家2」列中的他的ID。
- 你可以通過實現一個'GamePlay'類型的表格來修正上述問題,該表格對每個玩家都有不同的行。這樣每個玩家都有自己的結果,並被保存在一個列中以便查詢。
- 一個可能的結果單獨的表將是整潔。
我已經起草了一個例子如下
GameResult - 參考表,比賽結果
GameResultId | Desc
01 | Won
02 | Lost
03 | Drew
遊戲 - 這是遊戲表,列出了遊戲。可以有位置,日期,時間等詳細信息。
GameId | StartTime | Location | Ect
01 | 13:00 | Park | ect..
遊戲 - 對每個成員遊戲互動一行。
GamePlayId | GameId | PlayerId | GameResultId
01 | 01 | 01 | 01
02 | 01 | 02 | 02
這樣,您可以通過您的玩家查詢更容易。 (如讓所有玩家誰贏得了比賽名單)
SELECT
p.PlayerName
FROM
Player p
INNER JOIN GapePlay gp
ON p.PlayerId = gp.PlayerId
WHERE gp.GameresultId = 1
,你可以通過遊戲仍然很容易查詢過
SELECT
gp.GameId
, p.Name
, gr.Desc
FROM
GamePlay gp
INNER JOIN Player p
ON gp.PlayerId = p.PlayerId
INNER JOIN GameResult gr
ON gp.GameresultId = gr.GameResultId
WHERE
GamePlayId = 01