DB 内のテーブルによってそれぞれが表される 2 つ以上の大きく異なるオブジェクトがあるとします。これらを Article、Book などと呼びます。ここで、これらの各オブジェクトにコメント機能を追加したいとします。コメントは各オブジェクトでまったく同じように動作するため、理想的には 1 つのテーブルで表現したいと考えています。
しかし、私はこれを行う良い方法を知りません。私がこれを行う方法を知っている方法は次のとおりです。
- オブジェクトごとにコメント テーブルを作成します。Article_comments、Book_comments なども同様です。それぞれに、適切なオブジェクトへの外部キー列があります。
- 1 つのグローバル コメント テーブルを作成します。「Book」または「Article」を参照する comment_type を用意します。オブジェクトごとにヌル可能な外部キー列を持ち、comment_type を使用して使用する外部キーを決定します。
上記のいずれの方法でも、新しいオブジェクトが追加されるたびにモデル/データベースの更新が必要になります。より良い方法はありますか?