Chatspace database設計
- メッセージ管理機能
- ユーザー管理機能
- グループ管理機能
- グループ・ユーザー管理機能
アソシエーションについて
usersテーブルとmessagesテーブル、groupsテーブルがどちらも一対多となるアソシエーションを設定する。 usersテーブルとgroupsテーブルはお互いに多対多となるため中間テーブルのgroup-userテーブルを作成し、アソシエーションを設定する。
usersテーブル
Column | Type | Options |
---|---|---|
text | null: false, unique: true | |
password | text | null: false |
name | string | null: false,unique :true,index :true |
class User < ActiveRecored: :base has_many:messages has_many:group_user has_many: group, through: :group_user end
messagesテーブル
Column | Type | Options |
---|---|---|
body | text | |
image | string | |
group_id | references | foreign_key: true |
user_id | references | foreign_key: ture |
class Message < ActiveRecord: :Base belong_to :user belong_to :group end
groupsテーブル
Column | Type | Options |
---|---|---|
name | string | null: false |
class Group < ActiveRecord: :base has_many :messages has_meny :group_user has_many :user,through: :group_user end
group_usersテーブル(中間テーブル)
Column | Type | Options |
---|---|---|
group_id | references | :group,foreign_key: true |
user_id | references | :user,foreign_key: true |
class Group_users < ActiveRecord: :base belong_to :user belong_to :group end