#始めに
最近SQLの勉強を始めてます。
正直なところSQLの楽しさがよくわからないですが必要なので勉強しなきゃですね…
とりあえずER図というものがあるらしくそれをERDPlusというソフトで作ってみる
ERDPlusは無料だしインストールとかもいらないので良い
#とりあえず
とりあえず
ここにアクセスしてアカウント作って右上のDiagramsを押したらER図の作成ページに移る。
そこで+Newボタンを押してファイルを作成。
下↓のボタンを押せば名前を編集したりできる。
#作るもの
簡単なブログサイトのER図を作る。
とりあえずテーブルはusers,posts,categoriesを使うこととする
+Newを押したらER DiagramとかRelational Schemaとか出てくるがRelational Schemaを使う
こんな感じになった。
これで個人的に戸惑ったのはpostsにuser_idとかを入れないこと
connectでつなぐと勝手に作ってくれるっポイ。
#出来たもの
後で多対多のアソシエーションには中間テーブルが必要であることに気づきCategory_Post_Regという中間テーブルを作った
出来たものがこれ
これだと一対多なのか一対一なのか多対多なのかわからないけどたぶんこれはsqlのデータの作成に使うためのもの?だから良いのかな?
作ったものはExport SQLってのができて作成した図を元にSQLを書いてくれる
それがこれ
CREATE TABLE Users
(
User_ID INT NOT NULL,
name VARCHAR(30) NOT NULL,
age INT NOT NULL,
sex VARCHAR(10) NOT NULL,
mail VARCHAR(100) NOT NULL,
address VARCHAR(100) NOT NULL,
PRIMARY KEY (User_ID),
UNIQUE (mail)
);
CREATE TABLE Posts
(
Post_ID INT NOT NULL,
title VARCHAR(100) NOT NULL,
body VARCHAR(1000) NOT NULL,
User_ID INT NOT NULL,
PRIMARY KEY (Post_ID),
FOREIGN KEY (User_ID) REFERENCES Users(User_ID)
);
CREATE TABLE Categories
(
Category_ID INT NOT NULL,
cname VARCHAR(100) NOT NULL,
PRIMARY KEY (Category_ID)
);
CREATE TABLE Category_Post_Reg
(
RegID INT NOT NULL,
Category_ID INT NOT NULL,
Post_ID INT NOT NULL,
PRIMARY KEY (RegID),
FOREIGN KEY (Category_ID) REFERENCES Categories(Category_ID),
FOREIGN KEY (Post_ID) REFERENCES Posts(Post_ID)
);
普通に書こうと思ったらかなり大変だけどこれならすぐ作れるしタイプミスもないから良い
でも結局Railsの場合rails g modelでテーブルを作るからあんま関係ないかな
アソシエーションに関して詳しく書きたい場合は+ NewでER Diagramを選択してER図を作る。
#ER Diagram
さっきのをER Diagramで作るとこんな感じになる
一対多なのか多対多なのかわかるようになった。
これだとExport SQLができないけどRailsの場合いらないからこっちを使ったほうが良いのかも
#終わりに
基本的に英語で書かれているので英語が超苦手な自分としてはよくわからないところが多い。
もっと機能あるだろうしなんかもっと設定できる感じだけどとりあえずはこれで良しとする