Я новичок в 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
несколько игроков могут быть связаны с одним и тем же пользователем, что не имеет смысла в моем контексте. В терминах РСУБД я предполагаю, что мне нужно уникальное ограничение на внешний ключ в таблицах Players и Referees.
Как мне сделать это в моей модели DataMapper? Должен ли я сам выполнять проверку во время валидации?