我对 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 术语中,我想我想要的是对 Players 和 Referees 表中外键的唯一约束。
如何在我的 DataMapper 模型中实现这一点?我必须在验证中自己执行检查吗?