SQLに関するsphenのブックマーク (1)

  • 複数のテーブルに対して多対一で紐づくテーブルの設計アプローチ|スパイスファクトリー株式会社

    今回は、あまり見かけないようで意外と必要になる「複数のテーブルに対して多対一で紐づくテーブル」の設計について、4つのアプローチをご紹介します。 どのようなケース?あるテーブルが複数のテーブルのいずれかに対して、自身が多、紐付き先が一で関連する場合のテーブル設計です。 例えば、「記事」と「画像」を投稿できるようなSNSを想定します。 この時、閲覧者が投稿された「記事」と「画像」のどちらにも「コメント」をつけることができる機能があったとします。 このような場合に、どのようなテーブルの設計方法があるのか、以下から説明していきます。 1.ポリモーフィック関連SQLアンチパターンにも登場するこの設計方法。「どのテーブルのどのレコード(id)に紐づくのか」という情報をテーブルに持たせてしまうという方法です。具体的には以下のような設計になります。 comments.target_tableに関連する対象

    複数のテーブルに対して多対一で紐づくテーブルの設計アプローチ|スパイスファクトリー株式会社
    sphen
    sphen 2022/05/05
    多対一の設計、たしかに考えさせられる。記事と画像に対してコメントに付与する情報が違うこともあるなら(この例だとあまりなさそうだけど)、特に"2.複数の関連テーブル"は内容追加できるから有効そう。
  • 1