ma91n / go-userlogin-modeling

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

go-userlogin-modeling

そうだいさんの会員登録のデータベース設計の記事、 https://agilejourney.uzabase.com/entry/2022/07/28/103000 を読んで、Goでモデリングしてみる

主な要件

  • 会員登録・ログイン
    • メールアドレス/パスワードによるログイン
    • SSOを用いたLINEログインによる新規アカウント作成
    • メールアドレスはGitHubのように複数もつかもしれない
    • メールにpinコードを送って、Web画面で認証するといったワンタイムトークンのような使い方もある
  • 課金
    • クレジットカード支払い
    • 複数のクレジットカードを登録
    • 毎回ユーザーに選択されるのは厳しいのでデフォルトのカード設定が可能
    • LINE Pay / PayPay 支払い
    • 将来的に、コンビニ支払い、QRコード支払い、仮想通貨支払い
  • ユーザー管理
    • 会員、ゲスト、管理者、提携企業の種別がある
    • 会員
      • 通常会員
      • 一時会員
      • プレミアム会員
      • ゲスト
    • 会員ステータス
      • 退会、休会、未払い、仮会員
      • 未払いステータスの場合は、プレミアムも通常会員としてみなしたい

検討していて感じた必要そうな要件

  • 管理者、クライアントは通常フローで登録してもらった後に、ユーザー名(ID)をもとに運営側でInviteしてもらう
  • Emailはメール送信URL認証が通るまで仮状態にする
  • すでに登録済みかどうか判定が必要

検討メモ

  • DB設計と、Goのモデルは不一致
    • ユースケースごとにSQLをジョインして呼び出される
    • それに応じたGoのStructも異なる
    • ユースケースを洗い出すほうが大事だが、もはや業務感が出てくる...

作業終了

About

License:Apache License 2.0


Languages

Language:Go 100.0%