Public library catalog and circulation database schema

How a public library models its data: works, editions and barcoded copies, branches and holdings, members, loans with renewals, a positioned hold queue, fines and payments, and inter-branch transfers.

Library Catalog ER diagram

Public library catalog and circulation database schema n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 works idBIGINT uniform_titleVARCHAR original_languageCHAR first_published_y…SMALLINT work_typeVARCHAR subject_headingsTEXT summaryTEXT editions idBIGINT work_idBIGINT isbn13CHAR titleVARCHAR publisherVARCHAR published_yearSMALLINT edition_statementVARCHAR language_codeCHAR formatVARCHAR page_countINTEGER cover_image_urlVARCHAR contributors idBIGINT authority_nameVARCHAR display_nameVARCHAR birth_yearSMALLINT death_yearSMALLINT external_authorit…VARCHAR work_contributors work_idBIGINT contributor_idBIGINT roleVARCHAR ordinalSMALLINT branches idBIGINT codeVARCHAR nameVARCHAR address_lineVARCHAR postcodeVARCHAR phoneVARCHAR opens_atTIME closes_atTIME is_openBOOLEAN copies idBIGINT edition_idBIGINT barcodeVARCHAR home_branch_idBIGINT current_branch_idBIGINT shelf_locationVARCHAR statusVARCHAR acquired_onDATE cost_minorINTEGER currency_codeCHAR condition_noteVARCHAR is_reference_onlyBOOLEAN members idBIGINT library_card_numb…VARCHAR full_nameVARCHAR emailVARCHAR phoneVARCHAR date_of_birthDATE home_branch_idBIGINT membership_typeVARCHAR joined_onDATE expires_onDATE borrowing_blockedBOOLEAN loans idBIGINT copy_idBIGINT member_idBIGINT checkout_branch_idBIGINT return_branch_idBIGINT checked_out_atDATETIME due_onDATE returned_atDATETIME renewal_countSMALLINT renewal_limitSMALLINT stateVARCHAR loan_renewals idBIGINT loan_idBIGINT renewal_numberSMALLINT renewed_atDATETIME previous_due_onDATE new_due_onDATE channelVARCHAR granted_byVARCHAR holds idBIGINT member_idBIGINT work_idBIGINT edition_idBIGINT pickup_branch_idBIGINT placed_atDATETIME queue_positionINTEGER stateVARCHAR fulfilled_copy_idBIGINT ready_atDATETIME expires_onDATE suspended_untilDATE transfers idBIGINT copy_idBIGINT from_branch_idBIGINT to_branch_idBIGINT hold_idBIGINT reasonVARCHAR sent_atDATETIME received_atDATETIME courier_runVARCHAR fines idBIGINT member_idBIGINT loan_idBIGINT charge_typeVARCHAR amount_minorINTEGER currency_codeCHAR assessed_onDATE days_overdueINTEGER stateVARCHAR waived_reasonVARCHAR fine_payments idBIGINT fine_idBIGINT amount_minorINTEGER currency_codeCHAR methodVARCHAR paid_atDATETIME received_branch_idBIGINT external_referenceVARCHAR

Related database schemas