もくじ
DB, API設計でのINT型留意点
- データベース設計の正規化ではnullは不許可
- WorkBenchのフラグ欄を真偽値型のBoolean(TINYINT)を選択する
- Swagger Editor
・真偽値はtypeをbooleanにする
・21億4,000万
・超える可能性がある →BIGINT
・超えない → INT32
自動採番の主キーはBIGINT(INT64)にしています。
→LaravelのマイグレーションでのデフォルトがBIGINTになったから。
Swagger Editor
Notice: type: object description: プッシュ通知で送信するお知らせオブジェクト properties: id: type: integer format:int64 description: Noticeオブジェクトのid example: 1 name: type: string description: お知らせタイトル example: ポイントボーナス! main_text: type: string description: お知らせ本文 example: お正月だよ、お年玉ボーナス important_flag: type: boolean description: | 重要フラグ。画面設計を見ると赤い点で表示される - true - false
ifの比較
// true比較の場合 if(flag) // false比較の場合 if(flag == false)
- if(flag === true)は一見すると可読性が高い?が書かない。
- 理由としてifはtrueかfalseで判定するものだから。
INT型の種類
- TINYINT ・・・真偽値に利用
0 〜 255 - SMALLINT(int16)
-32,768 〜 32,767 - INT(int32) ・・・汎用の数値に利用
21億で収まる値
2,147,483,648 〜 2,147,483,647 - BIGINT(int64) ・・・Auto Increntなどの自動採番idに利用
数十億になりそうな値。
-9,223,372,036,854,775,808 〜 -9,223,372,036,854,775,807
Laravel マイグレーション INT型生成
Boolean型
$table->boolean('delete_flag')->default(false);
INT型
$table->integer('item_code');
自動採番 + INT型(INT32)
$table->increments('user_id');
自動採番 + BIGINT型(INT64)
$table->bigIncrements('id');