DB設計【書籍管理システム】
はじめに
書籍管理システムを例にDB設計についてまとめた記事になります。
要件
- させたいこと
- ユーザー登録、ログイン
- 書籍登録
- お気に入り
- レビュー
- 何のデータを保存するのか
- ユーザー情報
- 書籍情報
- 誰がどの本をお気に入りしたかの情報
- 誰がどの本をレビューしたかの情報
設計
- エンティティと(属性)を洗い出す
- ユーザー(ユーザー名、メールアドレス、パスワード)
- 書籍(書籍名、著者、出版日)
- お気に入り(お気に入りした人、お気に入りした書籍)
- レビュー(レビューした人、レビューした書籍、レビュー内容)
- エンティティ同士の関係を確認
- ER図の作成(設計漏れなくしたり、問題解決のヒントになるメリットがある)
- 制約、属性の決定
usersテーブル
name type comment NULL default option id integer ユーザーID false name varchar ユーザー名 false unique: true email varchar メールアドレス false unique: true password varchar パスワード false booksテーブル
name type comment NULL default option id integer 書籍ID false name varchar 書籍名 false author varchar 著者 false published_at date 出版日 false likesテーブル
name type comment NULL default option id integer お気に入りID false user_id integer ユーザーID false book_id integer 書籍ID false reviewsテーブル
name type comment NULL default option id integer レビューID false user_id integer ユーザーID false book_id integer 書籍ID false comment text レビュー内容 false