Database-Design

數據建模屬性和實體

  • August 17, 2022

我正在通過此處找到的以下數據建模練習:

Twitch 主播可以為他的社區舉辦任意數量的錦標賽。每場比賽最多由20支球隊組成。一個團隊輪流由最多三名玩家組成,其中一名是團隊負責人。每場比賽有任意數量的回合。社區版主手動將錦標賽的狀態設置為已開始、已檢查和已完成。每支隊伍可以在一輪中獲得一定數量的積分。這些由位置和擊殺數量組成。

連結中提供的解決方案是:

在此處輸入圖像描述

誰能解釋為什麼 tourney_id 和 team_id 是參與者的屬性?鑑於要求,我覺得它們應該是“圓形”實體的屬性。

誰能解釋為什麼 tourney_id 和 team_id 是參與者的屬性?鑑於要求,我覺得它們應該是“圓形”實體的屬性。

tourney_id已經是表的一個屬性round,這是有道理的,因為每個都 round屬於一個特定tourney,使其具有直接關係。

team_id在桌面上沒有意義,round因為每個人都team隱含地參與了一輪。這是眾所周知的,因為 ateam屬於一個特定tourney,並且一輪都屬於一個特定tourney,因此這意味著對於一個給定的tourney 所有 teams與它相關的東西,也間接地與該錦標賽的**所有回合相關。**因此,無需team直接關聯,round而且無論如何這都沒有意義,因為有多個teams參與相同round的相同tourney,因此您將無法team_ids在單個round實體上儲存多個。

participantand 之間的關係類似於 and之間team的關係roundtourney每個 participant屬於一個single teamteam_id因此,將其儲存在participants表中是有意義的。

tourney_id上有點多餘,因為表之間和表之間participants已經存在間接關係。但這樣做並沒有錯。它允許某人直接查詢給定的所有(當他們不關心來自 的任何資訊時)。participants``tourney``teams``participants``tourney``teams

引用自:https://dba.stackexchange.com/questions/315698