一開始在設計資料庫時常常不確定那個 type 要怎麼設,也不知道什麼是 unsigned integer ...
簡單來說就是沒有「負號」的整數資料類型,以 32-bit 整數為例,有號和無號能存的範圍不同:
32-bit unsgined 因為有一個位元是存正負號(正0負1),所以範圍才會是正負有 個可能;減一是因為有 0,所以正數範圍是 到 ,確實是 個數。
二進制的 $-2^{31}$ (signed int)
[1][000...0] #第一個為1,後面31個0
二進制的 $2^{31}-1$ (signed int)
[0][111...1] #第一個為0,後面31個1
二進制的 -1 (signed int)
[1][111...1] #32個1
有興趣可以到這個網站玩玩看binaryconvert
簡單來說,就看你那個欄位會不會有負數
例如 Laravel schema builder blueprint 提供的 id()
就是 unsigned 的 big integer
$table->id();
increments()
則是 unsigned integer
$table->increments('id');
更多請看官方文件