从单独的表创建项目组

时间:2013-04-17 18:16:17

标签: sql ruby-on-rails rails-activerecord

我有多个模型(事件,杂务,账单和列表),每个模型都有自己的表。我希望能够将这些实例中的任何一个组合在一起,例如将一个事件与一个要为其购买的项目列表分组,以及一个费用账单。

我认为每个表都有一个组ID,我可以通过合并group_id等于item_id项的每个表中的记录来获取组中的其他项。

group = Events.find_by_group_id(self.group_id).concat(Bills.find_by_group_id(self.group_id)) ...

但这似乎是一种糟糕的方式。

我认为这样做的另一种方式是使用两个项之间的多态关系

tag
item_1_id | item_1_type | item_2_id | item_2_type
----------+-------------+-----------+------------

但是在上面的例子中(一组三个不同的项目)需要六个记录,每对两个记录,每个项目都要知道该组中的所有其他项目。

有没有办法用连接做这个,我应该重新设计一些表吗?

0 个答案:

没有答案