diff --git a/_posts/2025-01-01-til.md b/_posts/2025-01-01-til.md new file mode 100644 index 0000000..a227894 --- /dev/null +++ b/_posts/2025-01-01-til.md @@ -0,0 +1,15 @@ +--- +layout: post +title: 2025-01-01 ポリモーフィック関連 +--- + +# ポリモーフィック関連 + +ポリモーフィック関連になっているものは同じ型として扱えなければいけない。 + +なのでコード上でポリモーフィック関連を表現する場合はインターフェイスを明示したメソッドを作り、それを各クラスでオーバーライドするのが良さそう。 + +そもそもポリモーフィック関連自体アンチパターンと言われている。 +テーブル上は関連する対象の型を保存するtype型とそのIDを保持しており、typeによってどのテーブルと紐づいているかが動的に決まるため外部キー制約が効かない。 +そのため誤ったデータが保存されても気づけない。 +RailsのようにFWでポリモーフィック関連のしくみがサポートされていなければ使わない方が良さそう