後へ      Topへ      次へ

データベース定義

アプリ名は、book_mgmt とします。

各テーブル定義は、以下の通りです。

User: ユーザー

カラム名 初期値 必須 唯一性 説明
enabled boolean true true false レコードが有効か?
email string NULL true true メールアドレス (*1)
encrypted_password string NULL true false 暗号化されたパスワード (*1)
reset_password_token string NULL false false パスワード再設定用の一時トークン(今回は使用しない) (*1)
reset_password_sent_at datetime NULL false false パスワード再設定メールを送った時間(今回は使用しない) (*1)
remember_created_at datetime NULL false false ログイン状態を保持する(今回は使用しない) (*1)
name string NULL true false 名前 (漢字のフルネーム)
is_admin boolean false true false アドミンか? (WEB上で全ての操作が可能)
is_librarian boolean false true false 司書か? (WEB上で「貸出・返却」の権限を持つ)

*1: GEM Devise 側で生成される。別章

Floor: 階層 (入居ビルでの物理的な階)

カラム名 初期値 必須 唯一性 説明
enabled boolean true true false レコードが有効か?
name string NULL true true 名称 (e.g. 1F)

Cabinet: 棚 (本の保管場所)

カラム名 初期値 必須 唯一性 説明
enabled boolean true true false レコードが有効か?
name string NULL true false 名称 (e.g. C101)
floor_id references NULL true false 棚が属する階層のID

Step: 段 (棚のどこにあるか)

カラム名 初期値 必須 唯一性 説明
enabled boolean true true false レコードが有効か?
name string NULL true false 名称 (e.g. S01)
cabinet_id references NULL true false 段が属する棚のID

Category: 本の種類

カラム名 初期値 必須 唯一性 説明
enabled boolean true true false レコードが有効か?
name string NULL true true 種類の名前

Book: 本 (管理対象物)

カラム名 初期値 必須 唯一性 説明
enabled boolean true true false レコードが有効か?
name string NULL true false 書名
isbn string NULL true true ISBN。全蔵書内でユニークであること。
category_id references NULL true false 本の種類ID
step_id references NULL true false 段ID
memo string NULL false false 本の説明など。自由記述

Status: ステータス (本の状態を表す)

データベースではなく、コードで持つ。

Log: ログ (本の状態の履歴を覚えておく)

カラム名 初期値 必須 唯一性 説明
status integer NULL true false ステータスID
book_id references NULL true false 本ID
user_id references NULL true false 借用・返却したユーザーID

後へ      Topへ      次へ