我正在尝试描述与包含额外字段信息的链接表的1:N M:1关系。 table1和table3都有很多字段。
现有表格如下:
Table1 1:N Table2 M:1 Table3
somethings extra info otherthings
id table1_id id
table3_id
table2.extra信息让我感到烦恼。我怎么在mongoid中描述这个?
class Model1
include Mongoid::Document
field :somethings, :type => String
has_many_and_belongs_to :inbetween
end
class ModelInbetween
include Mongoid::Document
field :extra_info, :type => String
???
end
class Model2
include Mongoid::Document
field :otherthings, :type => String
has_many_and_belongs_to :inbetween
end
答案 0 :(得分:1)
在Mongoid中,has_many
和belongs_to
用于表示两个集合之间的1:N
关系。 has_many_and_belongs_to
仅用于N:N
关系。有关官方文档,请参阅here。据我所知,你的表应该是这样的:
class Model1
include Mongoid::Document
field :somethings, :type => String
has_many :modelInbetweens
end
class ModelInbetween
include Mongoid::Document
field :extra_info, :type => String
belongs_to :model1
belongs_to :model2
end
class Model2
include Mongoid::Document
field :otherthings, :type => String
has_many :modelinbetweens
end
另外,请务必注意模型的复数/单数形式是否应用于定义关系。