Skip to content

プロジェクト設定の設計

Kazane Shimizu edited this page Mar 1, 2023 · 1 revision

前提

今使うカラムに限定しているので、ロゴとか、後から必須で入れるのも外しました。

プロジェクトとデータの持ち方

CMSは単一プロジェクト or 複数のプロジェクトに対応するかの2択がある。

  • [複数プロジェクト] microCMS(ネタ元:contentful)
    • 1つのOrganizationで複数のプロジェクト(APIを分けて使える)
こんなテーブルの持ち方?

- organization
  - users
  - projects
    - roles
      - permissions
    - collections
  • [単一プロジェクト] superfast(ネタ元:directus)
    • 1つのOrganizationで1つのスペース
- project
- users
- roles
  - permissions
- collections
  • 複数プロジェクトはコードが複雑化しそうなのが懸念ポイント
    • 後から入れるとなると全部のテーブルにproject_idが入るので、破壊的な変更になりそう
  • 👉 後から入れることへの懸念はあるものの、現時点で需要が分からないので、単一プロジェクトが良い気がする

スキーマ

superfast_project_settings

カラム名 タイプ 長さ NULL許可 キー デフォルト コメント
id int 11 primary
name varchar 100 Superfast
created_at dateTime
updated_at dateTime

API IF

プロジェクトの取得

GET /api/project_settings

レスポンス

project_setting: {
  id: 1,
  name: 'superast'
}

プロジェクトの更新

PUT /api/project_settings