記事の内容
この記事では、Ruby on Railsでポイントシステムを構築する際の設計的なところを紹介します。
ポイントシステムの要件
まずは、ポイントシステムの要件を紹介します。
- ユーザーはポイントを持つ
- ポイントには期限がある
- ポイント履歴を見たい
- ポイントを取得する方法は複数ある(クジ引き、補償)
- ポイントを消費する方法は複数ある(買い物、特別なクジ引き)
ポイントシステムのER図とオブジェクト図
次にER図と、具体的なデータ構造を示すオブジェクト図を紹介します。
この図に、ポイント履歴に入れるデータに対応するロジックも追加します。
PointHistoryのtypeとtype_idの部分です。
Ruby on Railsのモデルはこんな感じになります
Pointを使うさいには、別のクラスに処理をまとめておくと便利です。
まとめ
この記事では、ポイントシステムのER図とモデルについて紹介しました。
自分たちのシステムでもポイントを使ってみたいという人がいれば、是非、参考にしてみて下さい。
Good luck for your engineer life!