箱のプログラミング日記。

渋谷の自社開発企業でRails書いてます。

「1:多」の関係性

「1:多」の関係性とは

 

例)ツイッターの場合

ユーザーがツイートをすると、そのツイートに対してコメントが投稿される。

この時、

ツイートが複数のコメントをもち、一つのコメントは必ずどれかしらのツイートに所属している関係性が成り立つ。これをプログラミングでは「1:多」という概念で考える。

この場合、ツイートが「1」に該当し、コメントが「多」に該当する。

 

 

そして、以下のように表現する

  • tweet has_many comments
  • comment belongs to tweet

 

tweetモデル

class Product < ApplicationRecord
has_many :comments
end

commentモデル

class Product < ApplicationRecord
belongs_to :tweet
end

 

実際はそれぞれのモデルファイルに、このように記述する。

こうすることで、tweetとcommentは

「1:多」の関係性をもち、アソシエーションが組まれている状態になる。