我試圖弄清楚如何建模一個玩家可能擁有多個類的規範化數據庫。玩家和類對象之間的關係是什麼?玩家與遊戲中的類數據庫關係
每個玩家將能夠有多個班級,每個班級也會授予玩家多種技能。我熟悉規範化的數據庫並與他們一起工作,但從頭開始並沒有設置很多,尤其是對我自己而言。
我與如果任何人有一個方便的EER圖/截屏MySQL的社區工具集工作,他們能告訴我還有:)
我試圖弄清楚如何建模一個玩家可能擁有多個類的規範化數據庫。玩家和類對象之間的關係是什麼?玩家與遊戲中的類數據庫關係
每個玩家將能夠有多個班級,每個班級也會授予玩家多種技能。我熟悉規範化的數據庫並與他們一起工作,但從頭開始並沒有設置很多,尤其是對我自己而言。
我與如果任何人有一個方便的EER圖/截屏MySQL的社區工具集工作,他們能告訴我還有:)
這通常與一個鏈接表被處理的許多一對多關係:
PlayerClass:
PlayerID
ClassID
通常使用PlayerID,ClassID是主鍵,PlayerID和ClassID是對您的Class和Player表的外鍵引用。
通常,在許多設計中(雖然可能不在您的設計中),它也會以其他方式(ClassID,PlayerID)編入索引。
你的技能表將類似地連接到一個類:
ClassSkills:
ClassID
SkillID
現在,這裏的地方變得棘手 - 如果一個球員在兩個班,每個賦予相同的技能發生了什麼?它們是添加劑還是合併,或者是什麼?這是一個問題領域問題,在將這些表格全部加入一起並查看玩家的技能之前,必須解決這個問題。
這種關係會是多對多的。通常通過中間表格建模:
table Player: Id int, name varchar(50)
table PlayerClass: PlayerId int, ClassId int
table Class: Id int, name varchar(50)
PlayerClass表在其列上應具有外鍵約束。
請注意,遊戲數據庫被認爲太慢。大多數遊戲使用自定義存儲機制。
感謝提示,我使用數據庫的原因是因爲我教自己一些Flash/Actionscript和使用Web服務,所以我可以將它(遊戲)掛鉤到Kongregate或ArmorGames等各種門戶框架。 – Organiccat 2010-07-05 20:36:42