Bank

customers, accounts, cards and transactions. 7 tables, 31 columns, no data.

The map

Map of the 7 tables and their linksN1N1N1N1N1N1branchesPKidbigintnamevarcharcityvarcharcustomersPKidbigintfull_namevarcharnational_idvarcharemailvarcharledger_entriesPKidbigintaccount_idbigintdebitnumericcreditnumericposted_attimestamptzaccountsPKidbigintFKcustomer_idbigintFKbranch_idbigintkindvarcharopened_ondatecardsPKidbigintFKaccount_idbigintcard_number_last4charexpires_ondatetransactionsPKidbigintFKaccount_idbigintamountnumerickindvarcharbooked_attimestamptztransfersPKidbigintFKfrom_account_idbigintFKto_account_idbigintamountnumericsent_attimestamptz

Each line runs from a linking column (N) to the key it points at (1). The same tables are listed below as text.

The tables

branches

  • id bigintPK
  • name varchar(200) required
  • city varchar(100) required

customers

  • id bigintPK
  • full_name varchar(200) required
  • national_id varchar(40)
  • email varchar(255)

accounts

  • id bigintPK
  • customer_id bigint→ customers required
  • branch_id bigint→ branches required
  • kind varchar(20) required
  • opened_on date required

cards

  • id bigintPK
  • account_id bigint→ accounts required
  • card_number_last4 char(4) required
  • expires_on date required

transactions

  • id bigintPK
  • account_id bigint→ accounts required
  • amount numeric(12,2) required
  • kind varchar(20) required
  • booked_at timestamptz required

transfers

  • id bigintPK
  • from_account_id bigint→ accounts required
  • to_account_id bigint→ accounts required
  • amount numeric(12,2) required
  • sent_at timestamptz required

ledger_entries

  • id bigintPK
  • account_id bigint required
  • debit numeric(12,2) required
  • credit numeric(12,2) required
  • posted_at timestamptz required

What you could look at in SSDO

Create a free workspace and open this sample   All samples

PK is a primary key. “→ table” is a link (a foreign key) to that table. This page is a description of a structure we wrote; it holds no rows.