ブックマーク / zenn.dev/dove (2)

  • 権限周りの設計

    以下の記事を投稿して1年が経ちました。ノウハウが溜まってきたので、現時点で僕が理解している範囲で共有したいと思います。バックエンド向けの記事です。 ここで言うところの権限とは、誰がこの機能を使えるか決めることです。認可と意味は一緒なのかな? 権限パターン 以下のような4つの機能があったとき、 取得 作成 更新 削除 権限管理は以下のパターンがあります。 ユーザーに直接機能を紐付ける(例: ユーザーAは取得のみ可能、Bは作成更新のみ可能)。 機能と権限識別記号を紐付ける(例: permissionがADMINであれば全機能可能。USERであれば取得のみ可能など) ユーザーの属性に応じて機能を紐付ける(例: ユーザーが北海道出身で25歳以下のとき、削除が可能) ユーザーに直接機能を紐付ける 各ユーザーごとに細かく機能を割り当てたいときに便利です。細かく権限管理したくない場合は、今後扱う項目が増

    権限周りの設計
  • 結局マスタとトランザクションってなんなのか

    ネットで定義を調べてみると... データベース設計において、マスタテーブルとトランザクションテーブルという2つの分け方をもとに考えることがある。しかし、あらためてマスタとトランザクションとは何なのか、調べてもいまいちピンとこない。 ネットで調べると以下のような説明が出てくる。 マスタテーブル ユーザーが変更できないデータ あらかじめ登録しておくデータ トランザクションを記録するさいにポチポチ選択する系データ あまり変更することの無いデータ 顧客データや商品データなど ヒトやモノとか トランザクションテーブル ユーザーが登録するデータ 作成してから1週間くらいは高頻度な変更が発生する可能性がある 日報データや売上や活動履歴とか コトやイベント系とか なんとなく、マスタが初回に作成するリードオンリーっぽい情報を管理するもので、トランザクションが作業時に発生するデータであることがわかる。しかし、

    結局マスタとトランザクションってなんなのか
  • 1