複数のモデル (イベント、家事、請求書、およびリスト) があり、それぞれに独自のテーブルがあります。これらのインスタンスのいずれかをグループ化できるようにしたいと考えています。たとえば、購入するアイテムのリストと費用の請求書を含むイベントをグループ化します。
各テーブルがグループ ID を持つことができ、group_id が項目 group_id と等しい各テーブルのレコードをマージすることで、グループ内の他の項目を取得できると考えていました。
group = Events.find_by_group_id(self.group_id).concat(Bills.find_by_group_id(self.group_id)) ...
しかし、それは悪い方法のようです。
私が考えたもう 1 つの方法は、2 つのアイテム間にポリモーフィックな関係を使用することでした。
tag
item_1_id | item_1_type | item_2_id | item_2_type
----------+-------------+-----------+------------
しかし、上記の例 (3 つの異なるアイテムのグループ) では、各アイテムがグループ内の他のすべてのアイテムを認識するために、各ペアの間に 2 つ、計 6 つのレコードが必要になります。
結合でこれを行う方法はありますか? テーブルの一部を再設計する必要がありますか?