実務・技術解説
データベース入門:Vibe Codingで作ったアプリの「データの置き場所」を理解する
v0やCursorで作ったアプリのデータはどこに保存される?スプレッドシートとの違いから、本番運用に必要なデータベースの基礎知識を非エンジニア向けに解説。
Cursor・Bolt.new・Lovable・v0・Claude Codeでアプリを作っていると、ある疑問にぶつかります。
「このデータ、どこに保存されてるの?」
ローカルで動いている間は気にならなくても、本番公開するときには避けて通れない問題です。
スプレッドシートとデータベースの違い
まず、馴染みのあるスプレッドシート(ExcelやGoogleスプレッドシート)で考えてみましょう。
| スプレッドシート | データベース |
|---|---|
| 1人〜数人で使う | 数百〜数万人が同時に使う |
| 手動で開いて編集 | アプリが自動で読み書き |
| ファイルとして保存 | サーバー上で常時稼働 |
| 誰でも全部見える | 権限で見える範囲を制御 |
**データベースは「アプリ専用の超高速スプレッドシート」**と考えると分かりやすいです。
プロトタイプでよくある「データの罠」
Cursor・Bolt.new・Lovable・v0・Claude Codeで作ったプロトタイプには、よくある落とし穴があります。
罠1:データがブラウザにしか保存されていない
「localStorage」や「sessionStorage」という仕組みで、ブラウザ内にデータを保存している場合があります。これはそのブラウザでしか見えないので、本番運用には使えません。
罠2:データがコード内に直書きされている
const users = [
{ name: "田中", email: "tanaka@example.com" },
{ name: "佐藤", email: "sato@example.com" },
]
このようにコード内にデータが書かれていると、新しいユーザーを追加するたびにコードを修正する必要があります。
罠3:再起動するとデータが消える
サーバーのメモリ上にだけデータを持っている場合、サーバーを再起動するとすべてのデータが消えます。
本番運用に必要な「データベース」とは
本番運用では、以下の条件を満たすデータベースが必要です。
- 永続化:サーバーを再起動してもデータが残る
- 同時アクセス:複数ユーザーが同時に読み書きできる
- セキュリティ:権限のない人はデータにアクセスできない
- バックアップ:万が一のときに復元できる
Vibe Coderにおすすめのデータベースサービス
自分でデータベースサーバーを立てるのは大変です。以下のようなマネージドサービスを使うと、設定の手間を大幅に省けます。
Supabase(スーパーベース)
- PostgreSQLベースで、本格的なアプリに対応
- 管理画面がスプレッドシートのように直感的
- 認証機能も一緒に使える
- 無料枠あり
⚠ Supabaseを使う場合、データベースのアクセス制御(RLS)の設定が必須です。設定漏れがないかSupabaseセキュリティ診断で簡単にチェックできます。
Firebase(ファイアベース)
- Googleが提供するサービス
- リアルタイム同期が得意
- モバイルアプリとの相性が良い
- 無料枠あり
PlanetScale(プラネットスケール)
- MySQLベースで大規模サービス向け
- ブランチ機能でテスト環境を簡単に作れる
「データベース設計」が本番化の鍵
データベースを使うだけなら、AIツールでもできます。しかしどんなテーブル(表)を作り、どう関連付けるかという「設計」は、経験がないと難しい部分です。
例えば、ECサイトを作る場合:
- 「ユーザー」テーブル
- 「商品」テーブル
- 「注文」テーブル
- 「注文明細」テーブル
これらをどう関連付けるか、削除したときにどう処理するか、履歴をどう残すか...といった設計は、本番運用の安定性に直結します。
まとめ:データベースは「最後の30%」の入り口
プロトタイプから本番化する際、データベースの理解は避けて通れません。
- プロトタイプのデータが「どこに」「どう」保存されているか確認する
- 本番運用には永続化・同時アクセス・セキュリティ・バックアップが必要
- Supabaseなどのマネージドサービスを活用する
- データベース設計は専門家に相談するのが近道
データベース周りで詰まったら、それは「最後の30%」に入った証拠です。無理に自分で解決しようとせず、プロの力を借りることを検討してください。