こんにちは!データベースの世界へようこそ。
普段、私たちがアプリケーションを作るとき、「これ、ひとつの枠にまとめて入れられたら楽なのになぁ」って思うこと、ありませんか?
例えば、ブログの「タグ」や、ユーザーの「趣味」、あるいは「一週間の予定」なんてデータです。普通なら別のテーブルを作って「紐付け」をするのが王道ですが、PostgreSQLには「配列型(Array Types)」という、ちょっと気の利いた道具があるんです。
今日は、この「配列型」について、難しい専門用語は抜きにして、楽しく見ていきましょう!
—
1. 配列型って、何に例えられる?
簡単に言うと、配列型は「お弁当箱の仕切り」のようなものです。
普通、データベースのひとつの枠(カラム)には、ひとつのデータしか入りません。「名前」なら「山田太郎」さん一人だけ、という具合ですね。でも、配列型を使えば、ひとつの枠の中に「おにぎり、唐揚げ、卵焼き」をまとめてポンと入れることができるんです。
PostgreSQLでは、どんな型でも配列にできます。数字のリストも、文字のリストも、お手のものですよ。
2. どうやって使うの?(基本の書き方)
使い方は驚くほどシンプルです。型名の後ろに `[]` をつけるだけ。
例えば、「ユーザーが好きなフルーツ」を記録するなら、こんな感じです。
— 果物の名前を配列で保存!
CREATE TABLE users (
name TEXT,
favorite_fruits TEXT[]
);
データを登録するときは、波括弧 `{ }` で囲んであげればOK。
INSERT INTO users VALUES (‘佐藤さん’, ‘{“りんご”, “バナナ”, “ぶどう”}’);
これだけで、「佐藤さん」という行の中に、3つのフルーツが仲良く収まります。便利ですよね!
3. 「多次元配列」は「本棚」をイメージしよう
配列の中に、さらに配列を入れることもできます。これが「多次元配列」。
難しそうに聞こえますが、「本棚」をイメージしてください。
- 「一段目」に何が入っているか
- 「その中の何冊目」の本か
という二段構えで指定するだけです。
(実際には2次元くらいまでにしておくと、頭がこんがらがらなくて済みますよ!)
4. 配列をいじってみよう(魔法の演算子)
PostgreSQLのすごいところは、配列の中身をあとから自由自在に操れるところです。いくつか便利な「魔法の杖(演算子)」を紹介しますね。
- 「どれか入ってる?」を調べる (`@>`)
「この中に『りんご』が入っているユーザーを探したい!」というとき、`favorite_fruits @> ‘{“りんご”}’` と書けば、バシッと見つけてくれます。
- 「何番目?」を取り出す (`[n]`)
`favorite_fruits[1]` と書けば、一番最初に入れたデータが取り出せます。お弁当の最初のおかずを摘み食いするような感覚ですね。
- 「合体!」させる (`||`)
「あとから『みかん』も追加したいな」と思ったら、`favorite_fruits || ‘{“みかん”}’` とやるだけで、配列が成長します。
—
最後に:使いすぎには注意!
ここまで読んで「わーい、全部配列にすればテーブル設計が楽ちんじゃん!」と思ったあなた、ちょっと待ってくださいね。
実は、データベースの世界には「正規化」という、データを綺麗に分けるための大事なルールがあります。配列型を使いすぎると、あとで「特定のデータだけ集計したい!」というときに、計算がものすごく大変になってしまうんです。
- 配列に入れていいもの: 順番が変わってもいいもの、そこまで複雑な検索をしないもの(タグや、履歴の記録など)
- 別テーブルに分けるべきもの: 重要な情報で、あとから検索や分析をガッツリしたいもの
このバランス感覚こそが、一流のエンジニアへの第一歩です。
まずは、小さな実験テーブルを作って、`{ }` の中身をいじって遊んでみてください。「お、こんなに簡単にデータが管理できるんだ!」という感動が、きっとあるはずですよ。
それでは、また次回のブログでお会いしましょう!Happy Coding!
コメント