データベースの作成

目次
  • 解説
  • 1. データベースの作成
  • 2. テーブルの作成
  • 3. 初期データの追加
進捗を変更する




解説

1. データベースの作成


次はDBを準備しましょう。

手順1

(1)環境設定』コース内の『Docker > PostgreSQL > DBの起動・停止手順』を参考にPostgreSQLを起動し、pgAdminにログインしてください。
(2)SQL』コース内の『データベースを作成しよう』を参考に「tweet_laravel」という名前のDBを作成してください。

2. テーブルの作成


作成したDBにテーブルを作成しましょう。

手順2

(1)SQL』コース内の『テーブルを作成しよう』を参考に、下記のクエリを実行し、「users」テーブルと、「tweets」テーブルを作成してください。
手順1 で作成した「tweet_laravel」データベースを対象としたクエリツールを新たに開き、クエリを実行してください。
-- usersテーブルを作成
CREATE TABLE users (
    id serial PRIMARY KEY,
    name text NOT NULL,
    email text NOT NULL UNIQUE,
    password text NOT NULL,
    profile text,
    created_at timestamp(0) NOT NULL,
    updated_at timestamp(0) NOT NULL
);

-- tweetsテーブルを作成
CREATE TABLE tweets (
    id serial PRIMARY KEY,
    user_id integer NOT NULL REFERENCES users (id),
    post text NOT NULL,
    created_at timestamp(0) NOT NULL,
    updated_at timestamp(0) NOT NULL
);

3. 初期データの追加


つぶやきアプリ開発で使用する、初期データを登録しましょう。

手順3

(1)SQL』コース内の『データを登録しよう』を参考に、下記のクエリを実行し、「users」テーブルと、「tweets」テーブルに初期データを登録してください。
-- usersテーブルに初期データを挿入
INSERT INTO users (name, email, password, profile, created_at, updated_at) VALUES
    ('テストユーザー', 'test@test.com', '$2a$08$MJGhfDGUXacl9scG.9G6buHbXBIkOoXAwMamcKvAW9cQlmHQiwvfW', 'テストユーザーです、よろしくお願いします。', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
    ('山田一郎', 'yamada@test.com', '$2a$08$9Vcw8B6VgEFSbmWp2tn6ne/SUzlQcv02v1oBSpjgQQGgdYFUbmtW2', '山田一郎と申します!よろしくお願いします!', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
    ('田中花子', 'tanaka@test.com', '$2a$08$6xIdRhPrwiia6uLSCGdlLeZFTt.Ma1AR.0SPZ5hAoklIBmn9ZZVty', 'つぶやきアプリはじめました、よろしくお願いします。', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);

-- tweetsテーブルに初期データを挿入
INSERT INTO tweets (user_id, post, created_at, updated_at) VALUES
    (1, 'こんにちは、テストユーザーです。', CURRENT_TIMESTAMP - INTERVAL '4 MINUTES', CURRENT_TIMESTAMP - INTERVAL '1 MINUTES'),
    (2, 'はじめまして、山田一郎です!', CURRENT_TIMESTAMP - INTERVAL '3 MINUTES', CURRENT_TIMESTAMP - INTERVAL '3 MINUTES'),
    (3, '田中花子です、よろしくお願いします。', CURRENT_TIMESTAMP - INTERVAL '2 MINUTES', CURRENT_TIMESTAMP - INTERVAL '2 MINUTES');

※「users」テーブルの「password」カラムに登録しているランダムな英数字は、「testpass」という文字列をハッシュ化(暗号化)した値です。

完了したら、正しくデータが登録されているか確認しておきましょう。