1

这是我的模型:

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不会也有 a SecondItem),我可以has 1为两者建立关系其中,只有一个被填满。

那么在关系数据库中,这样做有意义吗?有没有更好、更有效的方式来定义这种关系?

4

1 回答 1

1

您想要的是多态关联,遗憾的是,DataMapper 不支持。尝试查看 ActiveRecord;您可以轻松地将它与 Sinatra 一起使用。

于 2013-06-01T07:26:22.507 回答