レベルアップ機能を実装するさいのテーブル設計
現在、railsを使ってタスクを完了したら経験値がたまり、レベルアップするアプリを作っている途中なのですがテーブル設計がわからなく、過去の同じような質問などをみて参考にして書いているのですが自分の場合はどうなのだろうかとなかなか進みません。
devisuによりログイン機能がついており、タスクを入力したら一覧に表示し、タスクが完了したら消すことができるツイート投稿型アプリと構造が同じです。
ちなみにその部分までは完成しており、レベルアップ機能を追加で実装しようとしている段階です。
タスクを消したら経験値を手に入れてレベルアップという流れにしたいです。
以下のテーブル設計についてご教授いただけたら幸いです。言語はrubyです。
自分で書いてみたテーブル設計
## users テーブル | Column | Type | Options | | ------------ | ---------- | ----------------------- | | name | string | null: false | | email | string | null: false | | password | string | null: false | | player_level | integer | null: false, default: 1 | | exp | integer | null: false, default: 0 | | level_id | references | foreign_key: true | ## Association - has_many :tasks - belongs_to :level ## tasks テーブル | Column | Type | Options | | ------- | ---------- | ------------------------------ | | content | string | null: false | | point | integer | null: false, default: 1 | | user_id | references | foreign_key: true | ## Association - belongs_to :user ## レベルテーブル | Column | Type | Options | | --------- | ---------- | ------------------------------ | | level | integer | | | threshold | integer | | ## Association - has_many :users
補足情報
userのexpはtaskのpointと連動して経験値をもらえる仕組身にしようとしています。
回答3件
あなたの回答
tips
プレビュー