1

複数のモデル (イベント、家事、請求書、およびリスト) があり、それぞれに独自のテーブルがあります。これらのインスタンスのいずれかをグループ化できるようにしたいと考えています。たとえば、購入するアイテムのリストと費用の請求書を含むイベントをグループ化します。

各テーブルがグループ 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 つのレコードが必要になります。

結合でこれを行う方法はありますか? テーブルの一部を再設計する必要がありますか?

4

0 に答える 0