← All schemas
Schema Library

Library Management System ER Diagram

The library management system is the classic DBMS lab project: members borrow books through loans, and the diagram maps all ten tables. Publishers publish books identified by ISBN; authors link to books through a book_authors join table; each title has many physical copies; members take out loans against copies, place reservations against titles, and accrue fines per loan. The modeling detail most student diagrams get wrong is the ISBN-versus-copy split: ISBN identifies a title, so a loan must reference a physical copy row - you cannot join a loan to an ISBN and know which book is actually on the shelf.

Last updated: 2026-09-27

Source: Original design by dbdiagramr, modeled on standard DBMS textbook schemas

Tables
10
Core flow
Title -> Copy -> Loan
Join tables
1
Mini Map
Open in DBdiagramr to edit →

Tables in the Library Management System schema

ColumnTypeNullableKey
publishers
iduuidNoPK
namevarcharNo-
cityvarcharYes-
countryvarcharYes-
authors
iduuidNoPK
first_namevarcharNo-
last_namevarcharNo-
birth_yearintegerYes-
books
isbnvarchar(13)NoPK
titlevarcharNo-
publisher_iduuidYes-
published_yearintegerYes-
editionintegerNo-
categoryvarcharYes-
pricenumeric(10,2)Yes-
book_authors
isbnvarchar(13)No-
author_iduuidNo-
copies
iduuidNoPK
isbnvarchar(13)No-
barcodevarcharYes-
shelfvarcharYes-
statusvarcharNo-
members
iduuidNoPK
first_namevarcharNo-
last_namevarcharNo-
emailvarcharNo-
phonevarcharYes-
addresstextYes-
joined_attimestamptzNo-
librarians
iduuidNoPK
first_namevarcharNo-
last_namevarcharNo-
login_idvarcharNo-
hired_attimestamptzNo-
loans
iduuidNoPK
copy_iduuidNo-
member_iduuidNo-
issued_byuuidYes-
issued_attimestamptzNo-
due_attimestamptzNo-
returned_attimestamptzYes-
reservations
iduuidNoPK
isbnvarchar(13)No-
member_iduuidNo-
reserved_attimestamptzNo-
fulfilled_attimestamptzYes-
fines
iduuidNoPK
loan_iduuidNo-
amountnumeric(10,2)No-
paid_attimestamptzYes-

Frequently asked questions

What tables does a library management system database need?

A standard library schema needs publishers, authors, books, book_authors, copies, members, librarians, loans, reservations, and fines - 10 tables covering catalog, circulation, and overdue handling.

Why do loans reference copies instead of books?

Because ISBN identifies a title, not a physical item. When a member borrows a book, the loan must point at the exact copy on the shelf (its barcode and status). Reservations, by contrast, reference the title (ISBN) since the member is waiting for any available copy.

How are books with multiple authors modeled?

Through the book_authors join table - a many-to-many link between books (by ISBN) and authors. Each row pairs one title with one author, so a book can have many authors and an author can write many books.

Explore more schemas

Visualize your own database

Paste your PostgreSQL connection string and get an interactive ER diagram of your own schema in under 10 seconds. No signup required.

Try it free →