遊戲網站:架構設計
我想為 Magic the Gathering 製作一個遊戲網站來報告活動結果和管理使用者套牌。
這是我到目前為止所擁有的。
賽事是一種錦標賽,玩家在錦標賽中競爭。玩家有套牌,類似於一副牌(在本例中為 60 張萬智牌)。
因此,Decks 表有這些列,其中包含與 Events 和 Players 表相關的外部 Id:
- event_id
- player_id
但是,我也希望使用者擁有 Decks。使用者不同於玩家。使用者登錄網站。然後,他們創建和編輯套牌。
我應該只創建一個 Decks 表還是創建一個像 UserDecks 這樣的第二個 Decks 表?
如果我有一個 Decks 表,它將包含以下列:
- event_id
- player_id
- 使用者身份
但是,事件 Decks 不會有 user_ids,使用者 Decks 不會有 event_ids 或 player_ids。可以在具有外國 ID 的列中使用 null 嗎?
我可以只為事件牌組做一個 Decks 表,為使用者牌組做一個 UserDecks 表,但是除了一些具有外國 ID 的不同列之外,擁有兩個相同的 Decks 表似乎不正確?
據我所知,您的基本設計不應該比我在下圖中繪製的複雜:
這假設您只有一個實體代表一個人(“玩家”,但也可以是“使用者”),套牌必須屬於一個人,並且多個人可以作為參與者進入事件。我假設他們會帶上自己的套牌,而賽事不能擁有套牌。
您在解釋中缺少範例。您的範例並不常見。
例如,使用者登錄並創建 2 個卡片組,它看起來像
UserID DeckID 1 1 1 2
問題1:玩家會使用使用者創建的套牌還是他們將創建自己的套牌?玩家和使用者之間共享什麼樣的關係。
問題2:就像撲克牌一樣,魔法卡有沒有限制,或者它可以是任何東西。
PlayerID DeckID EventID 1 3 1 1 5 1
他們都將在單獨的表中。雖然用範例解釋以及會出現什麼查詢。
我認為如果它們在同一個表中,查詢會變得複雜。也只是因為只有 DeckID 在使用者和玩家之間共享並不意味著他們會在同一個地方。