こんにちは!データベースエンジニアの「中の人」です。
今日は、PostgreSQLの「データ型」についてお話しします。
データベースって、よく「巨大な本棚」に例えられますよね。でも、ただ本を突っ込むだけじゃなくて、その本が「小説なのか、料理のレシピなのか、それとも家計簿なのか」を、あらかじめ決めてあげないと、後で探すときにすごく困っちゃうんです。
PostgreSQLでは、その「本の種類」を定義するのがデータ型です。これが正しく選べていると、データは整然と並び、検索も爆速になります。逆に適当だと……後で泣きを見ることになるので(経験済みです!)、今のうちにしっかり仲良くなっておきましょう。
—
1. 数字の扱い:integer と numeric
数字と言っても、実は使い分けが大事なんです。
- integer(整数): 「個数」や「回数」など、小数点がない数字に使います。例えるなら、「サイコロの目」のようなもの。キリがいい数字には、これが一番軽くて速いんです。
- numeric(数値): お金や精密な計算が必要なときに使います。「10.5%」とか「1,200円」みたいなやつですね。これは「厳密なレシートの記録」。小数点の計算で誤差が出ると困るような大事なシーンでは、迷わずこれを選んでください。
2. 文字列の扱い:text と varchar
文字を入れる箱にもこだわりがあります。
- text: とにかく「何でも入る箱」です。文章の長さが決まっていないなら、とりあえずこれを選んでおけば間違いありません。「自由帳」みたいなものですね。
- varchar: 「最大10文字まで!」といった制限をかける箱です。実は昔のデータベースの名残で使われることが多いのですが、最近のPostgreSQLは `text` がとても優秀なので、こだわりがなければ `text` で十分ですよ。
3. 真か偽か:boolean
「はい」か「いいえ」か。これは 「スイッチ」 です。
- boolean: データの値は `true` か `false` の二択。例えば、「会員登録済みですか?」という質問に対して「はい(true)」か「いいえ(false)」を記録するのに使います。シンプルですが、これがあるだけで検索条件がすごくスッキリするんです。
4. 時を刻む:日付・時刻型
日付は、データベースの醍醐味です。
- timestamp: 日付と時刻(例:2023-10-27 15:30:00)を記録します。「日記のタイムスタンプ」のようなもの。いつ何が起きたかを記録するのに一番よく使います。
- date: 時刻はいらない、日付だけでいい(例:2023-10-27)という場合はこれ。誕生日の記録などにぴったりですね。
—
結局、どれを選べばいいの?
初心者の方によく聞かれるのが「どれを使えばいいか迷う!」という悩みです。
僕からのアドバイスは、「最初はあまり深く考えすぎないこと」です。
1. 数字なら `integer`(迷ったら `numeric`)
2. 文字なら `text`
3. 二択なら `boolean`
4. 時なら `timestamp`
まずはこの4つを使いこなすところから始めてみましょう。データベース設計は、最初は誰でも試行錯誤の連続です。「あ、ここは数字じゃなくて文字にしておけばよかった!」なんて失敗も、立派なエンジニアへのステップアップですからね。
PostgreSQLは、とても懐の深いデータベースです。型を正しく選んであげることで、あなたの書くコードは驚くほど優しく、そして力強くなっていくはずですよ。
また次回、データベースの深い世界でお会いしましょう!何か気になることがあれば、いつでもコメント欄で教えてくださいね。
コメント