本設計書は、小規模書店の蔵書管理システムを題材とした Another Mood のサンプルプロジェクトです。テーブル定義データから、テーブル一覧・各テーブル詳細・ER 図を自動生成しています。
| ID | 名前 | 説明 |
|---|---|---|
書籍 |
書籍 | 店舗で取り扱う書籍のマスタ。1 書籍 1 レコードで、ISBN ごとに 1 行を持つ。 |
著者 |
著者 | 書籍を執筆した著者のマスタ。同名の著者は便宜上別レコードとして扱う。 |
出版社 |
出版社 | 書籍を発行した出版社のマスタ。仕入元と必ずしも一致しないが、本設計では同一視する。 |
在庫 |
在庫 | 店舗が現在保有している書籍の在庫数を、書籍ごとに 1 レコードで保持する。 |
仕入 |
仕入 | 出版社からの書籍仕入実績を 1 仕入 1 レコードで記録する。日次バッチで集計対象になる。 |
ドメイン層から見たクラス図。列_with_ドメイン型 クエリで 列.型 (DDL 表記) を 型対応 entity 経由でドメイン型に解決した結果を流し込んでいる。クラス名・属性名はテーブル設計書の日本語をそのまま使い、型のみドメイン層の表記 (string / integer / date) に置き換える。
classDiagram
class `仕入` {
仕入ID : string [PK]
書籍ID : string [FK]
仕入日 : date
数量 : integer
単価 : integer
}
class `出版社` {
出版社ID : string [PK]
社名 : string
所在地 : string
}
class `在庫` {
在庫ID : string [PK]
書籍ID : string [FK]
数量 : integer
棚番号 : string
}
class `書籍` {
書籍ID : string [PK]
タイトル : string
著者ID : string [FK]
出版社ID : string [FK]
価格 : integer
ISBN : string
}
class `著者` {
著者ID : string [PK]
氏名 : string
国 : string
}
`書籍` --> `著者` : 著者ID
`書籍` --> `出版社` : 出版社ID
`在庫` --> `書籍` : 書籍ID
`仕入` --> `書籍` : 書籍ID
erDiagram
"書籍" {
VARCHAR(16) 書籍ID PK
VARCHAR(255) タイトル
VARCHAR(16) 著者ID FK
VARCHAR(16) 出版社ID FK
INTEGER 価格
VARCHAR(20) ISBN
}
"著者" {
VARCHAR(16) 著者ID PK
VARCHAR(120) 氏名
VARCHAR(60) 国
}
"出版社" {
VARCHAR(16) 出版社ID PK
VARCHAR(120) 社名
VARCHAR(255) 所在地
}
"在庫" {
VARCHAR(16) 在庫ID PK
VARCHAR(16) 書籍ID FK
INTEGER 数量
VARCHAR(16) 棚番号
}
"仕入" {
VARCHAR(16) 仕入ID PK
VARCHAR(16) 書籍ID FK
DATE 仕入日
INTEGER 数量
INTEGER 単価
}
"書籍" }o--|| "著者" : "著者ID"
"書籍" }o--|| "出版社" : "出版社ID"
"在庫" }o--|| "書籍" : "書籍ID"
"仕入" }o--|| "書籍" : "書籍ID"