[第七只羊] 迷雾森林舞会前夕 建立使用者关联

天亮了 昨晚是平安夜

关於迷雾森林故事

秘密通道

Rocky 循着发光的脚印继续寻找爸爸妈妈的下落
沿着会场 经过河岸
随着光点足迹走到了一个像是桥上
这个桥是由一颗千年松木的树根跨越小河的两边
光点就在这里失去了踪影
https://ithelp.ithome.com.tw/upload/images/20210921/201311550v2Utrw5Sz.jpg
Rocky 满头黑人问号
却也想不出个所以然
然而今晚就是舞会的举办日等到夜晚上弦月高挂在上方
就会开始进行
阿虎与呱呱忙着布置环境
是一样很大的森林空地
森林的 animal 也都慢慢往会场移动
Rocky 依然坐在墙上
没有心思思考别的事情
此时要去跟他赴约的小狐狸
在远方看到 Rocky 一个人在桥上不知道在做什麽
偷偷摸摸地接近他
并大力地拍下他的肩膀
疲惫不堪精神状况又很差的 Rocky 一个没坐好 整只掉进水里面
小狐狸好慌张
马上到处搬救兵来救救 Rocky
大夥捞了好久都没有捞到
请短吻鳄鱼在水下帮忙找也都没有看到踪影
https://ithelp.ithome.com.tw/upload/images/20210922/20131155QndR9zdhYw.jpg
图片来源
其他 animal 渐渐放弃了找到 Rocky的希望
小狐狸则是不死心地到处呼喊 Rocky 的名字
突然间
从会场传来找到 Rocky 的消息
大夥连忙冲到会场去 急忙着问着阿虎
浣熊在哪 我们找半天都找不到
阿虎无奈着指着天空 说 看起来是在月球上
圆滚滚的 Rocky 身型取代了上弦月 变成了满月

IMAGE ALT TEXT HERE
图片来源
中秋节快乐
待续..

动物园派对

再来我们回到後端
我们先来把使用者初步关联架构设计起来
在我们的情境中
角色将会拥有多种身份
有时候甚至会因为技能而互换身份
所以对系统来说
每个角色允许拥有多重身份
首先

  • 使用者的身份
    • 游戏前分成三种 分别是
      • 室长(建立房间的使用者,也是其中一个玩家)
      • 11个玩家(坐下座位参与游戏)
      • 一般观众(观看游戏)
    • 游戏开始时,12位玩家多了游戏角色身份
  • 一个房间有12个座位
  • 一个座位属於一个房间,并只对应一个使用者
  • 一个房间可以选择一种板子,每个板子有对应的角色技能
    所以我们先把栏位开起来
$ Rails g migration create_users
class CreateUsers < ActiveRecord::Migration[6.1]
  def change
    create_table :users do |t|
      t.string :email
      t.string :name
      t.references :room, index: true
      t.timestamps
    end
  end
end
$ Rails g migration create_rooms
class CreateRooms < ActiveRecord::Migration[6.1]
  def change
    create_table :rooms do |t|
      t.string :name
      t.integer :number_of_gamer, default: 12
      t.integer :board
      t.string :status

      t.timestamps
    end
  end
end

$ Rails g migration create_seats
class CreateSeats < ActiveRecord::Migration[6.1]
  def change
    create_table :seats do |t|
      t.belongs_to :room, null: false, foreign_key: true
      t.references :user, null: false, foreign_key: true
      t.string :status
      t.integer :number

      t.timestamps
    end
  end
end

在model的部分
使用者暂时不用有关联

class User < ApplicationRecord
end

房间里面则是与座位有一对多关系

class Room < ApplicationRecord
  has_many :seats, dependent: :destroy
end

座位则是属於房间且只能对应一位使用者

class Seat < ApplicationRecord
  belongs_to :room
  has_one :user
end

如此一来我们就可以开始准备建立房间了

阿虎每日选币

明早站稳就是好买点 守0.09633

天黑请闭眼


<<:  [Day22] Flutter - Infrastructure Authentication (part6)

>>:  8 稍微重构一下下,一点就好

Day 20. Hashicorp Nomad: Docker driver image behavior

Hashicorp Nomad: Docker driver image behavior 在Has...

day21_Windows ARM 的修图之旅

Windows Arm 的影片剪辑 虽然很多图像工作者都使用 Mac 来作为主力的开发机,但也有很多...

android studio 30天学习笔记-day 20-SQLlite

SQLlite是android内建的资料库,可以做资料储存、更改、查询等操作。 建立一个SqlDat...

懂得市场定位,就能立足市场—南北杂货的经营智慧

传统产业里面,有一种什麽都卖,什麽都不奇怪的商店,叫做南北杂货,不论是乾货、调味料、面食、蛋品、香料...

用新技术加强您的内部稽核-将稽核软件引入组织的 7 个步骤

在 2000 年代初期,内部稽核团队的典型工作重点是完成对特定财务和运营领域的传统周期性稽核——这一...