TL;DR
大小を比較する事やその順番に意味があるならそれはきっと「数値」なのでInteger等のカラムを使おう。
そうじゃないならそれはきっと「数字で表されたコード」なのでString等のカラムにしておこう。
ここは日本語についての知識を記録・共有するための場所ではなく、エンジニアに関する知識を記録・共有するための場所なので、ざっくりと。
数(かず)ってなんだろ
量や順序を表すものです。
数字(すうじ)ってなんだろ
主に数を表記、表現するために使用する記号、文字です。
数値(すうち)ってなんだろ
数が(主に数字によって)表された値です。
つまり?
数字で書いてあっても数ではないものがあります。
例えば電話番号や車のナンバーなどは数字で書かれていますが、数ではないし数値でもないです。
こういった物をDBに格納する際にInteger等のカラムを使うと色々と不都合があります。
わかりやすいところでは「先頭の0」がなくなったり、「先頭の0」のせいで8進数になったりです。
一見数値だけど実は数字、というパターンが数多く存在します。
また、数字のことを数値と言ってしまってる場合も多いです。
大小を比較(つまり量)できそう、順番を表してそう、でも数値じゃないってこともあります。
電話番号やナンバーは一見数値ですが、量や順番そのものに意味はありません。
定義書に「数値型」って書いてあるそのデータ、本当に「数値」ですか?
数値なのか数字なのか分からなくなってきたそこのアナタ。
ランチェスターではサーバーサイドエンジニアを募集していますので、数値と数字についての議論がてら、まずはざっくばらんにお話ししてみませんか?
下記からご応募お待ちしております。
▼ https://herp.careers/v1/lanchester/Bucw0mXRKogc
▼ https://www.wantedly.com/companies/lanchester
▼採用動画について:https://moovy.jp/job/651