以下の要件にてグループチャット機能を持つアプリの作成を考えています。
- ユーザーは複数のチャットルームに所属することができる
- 1つのチャットルームに対して1人管理者権限を付与する必要がある
- チャットルーム内における管理者権限の移動を許容する
チャットルームに対して誰が管理者権限を持っているか区別させるためには、どのようなデータベース設計にすれば良いかお伺いしたいです。よろしくお願いいたします。
現状のデータベース
- chatrooms
- chartoom_users
- users
中間テーブルであるchatroom_usersを通してアソシエーションを定義しています。
rb
1class Chatroom < ApplicationRecord 2 has_many :chatroom_users, dependent: :destroy 3 has_many :users, through: :chatroom_users 4end 5 6class User < ApplicationRecord 7 has_many :chatroom_users, dependent: :destroy 8 has_many :chatrooms, through: :chatroom_users 9end 10 11class ChatroomUser < ApplicationRecord 12 belongs_to :chatroom 13 belongs_to :user 14end
あなたの回答
tips
プレビュー