STEP1-7.データベースについて

リレーショナルデータベース

データの送信と受け取りができるようになったので次は保存です。

データは普通データベースに保存されます。データベースにも様々な種類があり、リレーショナルデータベースかそれ以外かに大別されます。
ここではPostgreSQLというリレーショナルデータベースシステムを使用します。リレーショナルデータベースとは、データを表(テーブル)に保存し、複数の表の関係を連結することで1つのデータを表現するシステムです。

PostgreSQLをpgAdminから触ってみよう

pgAdminはPostgreSQLサーバをウェブブラウザで管理するためのデータベース接続クライアントツールの一種です。これを利用する事で、視覚的にわかりやすい形でデータベースを操作することが可能になります。
Dockerと開発環境の作り方」での手順に従ってdocker-composeからコンテナを立ち上げると、以下のURLに自動的にこのpgAdminが立ち上がっていますので接続してみましょう。

Windows10のhomeEditionの方「 http://192.168.99.100:5050
それ以外の方「 http://localhost:5050

アクセスすると以下のようなログイン画面が出ると思います。

初期ユーザーとパスワードは以下のようになります。
ユーザー名:user@domain.com
パスワード:SuperSecret

なお、このユーザー名とパスワードは「Dockerと開発環境の作り方」でDLしたリポジトリの「docker-compose.yml」の32、33行目に記述したものになります。

pgAdminにDBサーバを追加しよう

コンテナを立ち上げてからpgAdminに初めて接続した時には、pgAdminから操作するDBサーバは登録されていません。まずはDBサーバを追加しましょう。

Quick Linksの「Add New Server」をクリックするか、左側のServerを選択してから上部のタブにある「Object>Create>Server」をクリックしましょう。

1_7_2

ポップアップしたサーバー追加フォームに情報を入力していきます。

フォーム 入力内容 説明
General>Name  好きな名前 pgAdminで使う名前なので自由
Connection>Host name/address pgsql DBが動いているIPアドレスやドメインを入れますが、今回はDockerで立ち上がっているコンテナ名
Connection>Port 5432 docker-compose.ymlの19行目で設定した左側のポート番号
Connection>Maintenance database postgres docker-compose.ymlの26行目で設定したデータベース名
Connection>Username postgres docker-compose.ymlの25行目で設定したユーザ名
Connection>Password example docker-compose.ymlの24行目で設定したパスワード

入力が終わったら「Save」ボタンをクリックしましょう。
DBサーバの登録がうまくいけば、左側のServerの配下に「General>Name」で設定した名前のDBサーバが追加されているはずです。

DBを作成してみよう

DBサーバが追加できましたね?
それでは、早速、DBを作成してみましょう。

まずは、ブラウザの画面の左側の「Server」をクリックし、「General>Name」で設定した名前のDBサーバを表示、そのDBサーバを選択します。
右クリックして「Create>Database」をクリックするか「Object>Create>Database」をクリックしましょう。

1_7_4

すると、以下のようなデータベース作成フォームがポップアップします。

ここでは、TESTというDBを作成してみましょう。 general>DatabaseのフォームにTESTと入力し「Save」をクリックします。 すると下図のように、左メニューに新しい階層が作られて、「TEST」というDBが作成されたことが確認できると思います。

テーブルを作成してみよう

うまくいきましたね。いい調子です!
今度はテーブルを作成してみましょう。

先ほど作成したデータベースである「TEST」を選択します。
すると、細かい項目が、沢山出てきます。
それぞれいろんな機能がありますが、以下のように「Servers>(DBサーバにつけた名前)>Databases>TEST>Schemas>public」という場所を選択しましょう。

1_7_7

右クリックして「Create>Table」をクリックするか「Object>Create>Table」をクリックしましょう。 すると、以下のようなテーブル作成フォームがポップアップします。

1_7_8

テーブル作成は入力が少し複雑なので頑張りましょう。
まずは「Genaral」タブでテーブル名を設定します。 今回は「test_comments」という名前のテーブルにしてみます。

次に「Columns」タブでデータの種類の型や取り決めを設定していきます。

1_7_9

データの種類の型とは、例えば数字のデータ型(Integer)、変長文字列のデータ型(character varying)、日時のデータ型(timestamp)といったものがあります。
テーブルのデータの取り決めには、指定がなかった場合に入る値(デフォルト値)、データを入れるときにその項目が空でも良いかどうか(NULL設定)、検索によく使う項目を指定する事で検索を速くする(INDEX)など色々なものがあります。

様々なデータ型や設定項目があり、用途によって使い分けることでデータベースのパフォーマンスが大きく変わります。余裕がある方はテーブル設計について色々調べてみるといいかもしれません。

ここで、idに設定したデータ型「serial」は、PostgreSQLで自動的な連番のカラムを作りたい時に使えるデータ型です。
更に、デフォルト値を設定したいので、フォームのカラムの左端にある、鉛筆とノートのようなアイコンをクリックします。 すると以下のような画面になります。

1_7_10

ここで「created_at」(データを作った時間)には、データを入れた時の時間が自動で入って欲しいので、「Definision」タブを開いて「Default Value」に「CURRENT_TIMESTAMP」と入力しておきましょう。

「updated_at」も同じように設定します。 これで、テーブル設定項目の入力が終わりました。
「Save」ボタンをクリックしてテーブルの登録を完了させましょう。

設定に問題がなければ、以下のような画面に遷移し、テーブルが作成できたことが確認できるはずです。

なお、テーブル作成の設定項目は以下に記述しておきますので参考にしてください。

テーブル名:test_comments

カラム名 データ型 NULL デフォルト値 その他
id serial NG - AI
name character varying(20) NG - -
text character varying(140) NG - -
created_at timestamp NG CURRENT_TIMESTAMP -
updated_at timestamp NG CURRENT_TIMESTAMP -

results matching ""

    No results matching ""