erDiagram
USER {
int user_id PK
string name
string email
string phone
date registration_date
boolean is_active
}
BOOK {
int book_id PK
string isbn
string title
string author
string publisher
int publication_year
string category
boolean is_available
}
BORROW_RECORD {
int record_id PK
int user_id FK
int book_id FK
date borrow_date
date due_date
date return_date
string status
}
RESERVATION {
int reservation_id PK
int user_id FK
int book_id FK
date reservation_date
date expiry_date
string status
}
FINE {
int fine_id PK
int user_id FK
int record_id FK
decimal amount
date issue_date
date paid_date
string status
}
USER ||--o{ BORROW_RECORD : "borrows"
BOOK ||--o{ BORROW_RECORD : "is_borrowed"
USER ||--o{ RESERVATION : "reserves"
BOOK ||--o{ RESERVATION : "is_reserved"
USER ||--o{ FINE : "incurs"
BORROW_RECORD ||--o{ FINE : "generates"
复制内容
下载markdown文件
在线编辑