DB設計【書籍管理システム】

はじめに

書籍管理システムを例にDB設計についてまとめた記事になります。

要件

  1. させたいこと
    • ユーザー登録、ログイン
    • 書籍登録
    • お気に入り
    • レビュー
  2. 何のデータを保存するのか
    • ユーザー情報
    • 書籍情報
    • 誰がどの本をお気に入りしたかの情報
    • 誰がどの本をレビューしたかの情報

設計

  1. エンティティと(属性)を洗い出す
    • ユーザー(ユーザー名、メールアドレス、パスワード)
    • 書籍(書籍名、著者、出版日)
    • お気に入り(お気に入りした人、お気に入りした書籍)
    • レビュー(レビューした人、レビューした書籍、レビュー内容)
  2. エンティティ同士の関係を確認
    f:id:Toshiki2968:20220314005810p:plain
    エンティティ同士の関係
  3. ER図の作成(設計漏れなくしたり、問題解決のヒントになるメリットがある)
    f:id:Toshiki2968:20220314005839p:plain
    ER図
  4. 制約、属性の決定

    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

参考

図解まるわかり データベースのしくみ | 坂上 幸大 |本 | 通販 | Amazon