我很新的DataMapper,我試圖創建以下情形型號:一比一的DataMapper協會
我有多個用戶(使用用戶名,密碼等等),他們也可以是球員或裁判或兩者(因此單表繼承不是一種選擇)。基本模型將是:
class User
include DataMapper::Resource
property :id, Serial
# Other user properties go here
end
class Player
include DataMapper::Resource
property :id, Serial
# Other player properties go here
# Some kind of association goes here
end
class Referee
include DataMapper::Resource
property :id, Serial
# Other referee properties go here
# Some kind of association goes here
end
DataMapper.finalize
我不確定,但是,什麼類型的關聯添加到播放器和裁判。使用belongs_to :user
,多位玩家可以與同一位用戶關聯,這在我的上下文中沒有意義。在RDBMS術語中,我想我想要的是對玩家和裁判表中外鍵的唯一約束。
如何在我的DataMapper模型中完成此操作?我必須在驗證中自己執行檢查嗎?
感謝您的回答。不過,這些模型仍然允許我創建與同一用戶相關聯的多個玩家。 – mwittrock
@mwittrock我明白了。編輯,以防止這一點。現在,「子類」使用用戶外鍵作爲其主鍵。 – AlexQueue
這似乎是DataMapper中正確的一對多關聯。享受聲譽的幫助:-) – mwittrock