这是我的模特:
class Item
include DataMapper::Resource
property :id, Serial
has 1, :firstitem
has 1, :seconditem
end
class FirstItem
include DataMapper::Resource
property :id, Serial
belongs_to :item
end
class SecondItem
include DataMapper::Resource
property :id, Serial
belongs_to :item
end
现在,我的问题是 - 如果我希望FirstItem
和SecondItem
成为不同的模型,但希望它们都可能成为Item
的一部分(但只有两个中的一个,所以FirstItem
的记录也不会有SecondItem
),我可以为他们两个建立has 1
关系,只有其中一个被填满。
所以在关系数据库中,这样做有意义吗?是否有更好,更有效的方式来定义这种关系?
答案 0 :(得分:1)
你想要的是一个多态关联,遗憾的是,DataMapper不支持。尝试查看ActiveRecord;你可以轻松地将它与Sinatra一起使用。