もくじ
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');


