@startuml

!theme plain
hide empty methods

!procedure $schema($name, $slug)
package "$name" as $slug <<Rectangle>>
!endprocedure

!procedure $table($name, $slug)
entity "<b>$name</b>" as $slug << (T, Orange) table >>
!endprocedure

!procedure $view($name, $slug)
entity "<b>$name</b>" as $slug << (V, Aquamarine) view >>
!endprocedure

!procedure $pk($name)
<color:#GoldenRod><&key></color> <b>$name</b>
!endprocedure

!procedure $fk($name)
<color:#Silver><&key></color> $name
!endprocedure

!procedure $column($name)
{field} <color:#Transparent><&media-record></color> $name
!endprocedure


title "FROM TEST: Database Schema Diagram"

legend bottom right
generated by SchemaCrawler 17.11.2
generated on 2026-06-09 12:10:49
end legend


$schema("PUBLIC.BOOKS", "books_208b5502") {

$table("AUTHORS", "authors_f521e766") {
  $pk("ID"): INTEGER NOT NULL
  $column("FIRSTNAME"): VARCHAR NOT NULL
  $column("LASTNAME"): VARCHAR NOT NULL
  $column("ADDRESS1"): VARCHAR 
  $column("ADDRESS2"): VARCHAR 
  $column("CITY"): VARCHAR 
  $column("STATE"): CHARACTER 
  $column("POSTALCODE"): VARCHAR 
  $column("COUNTRY"): VARCHAR 
}

note left of authors_f521e766 #LemonChiffon
Contact details for book authors
end note



$table("BOOKS", "books_f4a675c8") {
  $pk("ID"): INTEGER NOT NULL
  $column("TITLE"): VARCHAR NOT NULL
  $column("DESCRIPTION"): VARCHAR 
  $column("PUBLISHERID"): INTEGER NOT NULL
  $column("PUBLICATIONDATE"): DATE 
  $column("PRICE"): DOUBLE 
  $fk("PREVIOUSEDITIONID"): INTEGER 
}

note left of books_f4a675c8 #LemonChiffon
Details for published books
end note

note right of books_f4a675c8::ID #LightCyan
Unique (internal) id for book
end note

note right of books_f4a675c8::TITLE #LightCyan
Book title
end note

note right of books_f4a675c8::DESCRIPTION #LightCyan
Book description
(Usually the blurb from the book jacket or promotional materials)
end note

note right of books_f4a675c8::PUBLISHERID #LightCyan
Foreign key to the book publisher
end note

note right of books_f4a675c8::PUBLICATIONDATE #LightCyan
Book publication date
end note

note right of books_f4a675c8::PRICE #LightCyan
Current price for the book
end note



$table("Celebrities", "celebrities_db1258df") {
  $pk("Id"): INTEGER NOT NULL
  $column("NAME"): VARCHAR 
}



$table("COUPONS", "coupons_54c3042b") {
  $pk("ID"): INTEGER NOT NULL
  $column("DATA"): CLOB 
  $column("COUPONS"): INTEGER ARRAY 
  $column("BOOKS"): VARCHAR(20) ARRAY[10] 
}



$table("CUSTOMERS", "customers_f705d773") {
  $pk("ID"): INTEGER NOT NULL
  $column("FIRSTNAME"): NAME_TYPE NOT NULL
  $column("LASTNAME"): NAME_TYPE NOT NULL
  $column("AGE"): AGE_TYPE 
}



$table("PUBLISHERS", "publishers_8037d535") {
  $pk("ID"): INTEGER NOT NULL
  $column("PUBLISHER"): VARCHAR 
}

note left of publishers_8037d535 #LemonChiffon
List of book publishers
end note

note right of publishers_8037d535::ID #LightCyan
Unique (internal) id for book publisher
end note

note right of publishers_8037d535::PUBLISHER #LightCyan
Name of book publisher
end note



$table("BOOKAUTHORS", "bookauthors_ead84c5d") {
  $fk("BOOKID"): INTEGER NOT NULL
  $fk("AUTHORID"): INTEGER NOT NULL
  $column("SOMEDATA"): VARCHAR 
}

note left of bookauthors_ead84c5d #LemonChiffon
Relationship between books and their authors, 
along with the latest updated information
end note



$table("Celebrity Updates", "celebrityupdates_f5088e8b") {
  $pk("Celebrity Id"): INTEGER NOT NULL
  $column("UPDATE"): VARCHAR 
}



$table("CUSTOMERDATA", "customerdata_b0af83c6") {
  $pk("CUSTOMERID"): INTEGER NOT NULL
  $pk("DATAID"): INTEGER NOT NULL
  $column("DATA"): VALID_STRING 
}



$table("ΒΙΒΛΊΑ", "βιβλία_3cecb755") {
  $pk("ΜΟΝΑΔΙΚΌΣ"): SMALLINT NOT NULL
  $column("ΤΊΤΛΟΣ"): VARCHAR NOT NULL
  $column("ΠΕΡΙΓΡΑΦΉ"): VARCHAR 
  $fk("ΕΚΔΌΤΗΣ"): SMALLINT NOT NULL
}



$view("AUTHORSLIST", "authorslist_9ccb3c04") {
  $column("ID"): INTEGER 
  $column("FIRSTNAME"): VARCHAR 
  $column("LASTNAME"): VARCHAR 
}



}


$schema("PUBLIC.PUBLISHER SALES", "publishersales_7f7f6c20") {

$table("REGIONS", "regions_dbf65bbf") {
  $column("CITY"): VARCHAR NOT NULL
  $column("STATE"): VARCHAR NOT NULL
  $pk("POSTALCODE"): VARCHAR NOT NULL
  $pk("COUNTRY"): VARCHAR NOT NULL
}



$table("SALESDATA", "salesdata_1193fa76") {
  $column("SALESDATAID"): INTEGER 
  $column("YEARLYAMOUNT"): DOUBLE 
}



$table("SALES", "sales_751e68cc") {
  $fk("POSTALCODE"): VARCHAR NOT NULL
  $fk("COUNTRY"): VARCHAR NOT NULL
  $fk("BOOKID"): INTEGER 
  $column("COUPON_ID"): INTEGER 
  $column("PERIODENDDATE"): DATE 
  $column("TOTALAMOUNT"): DOUBLE 
  $fk("SALESDATAID"): INTEGER 
}



}


books_208b5502.bookauthors_ead84c5d::AUTHORID }|--|| books_208b5502.authors_f521e766::ID : Z_FK_AUTHOR
books_208b5502.books_f4a675c8::PREVIOUSEDITIONID |o--|| books_208b5502.books_f4a675c8::ID : FK_PREVIOUSEDITION
publishersales_7f7f6c20.sales_751e68cc::BOOKID }o--|| books_208b5502.books_f4a675c8::ID : FK_SALES_BOOK
books_208b5502.bookauthors_ead84c5d::BOOKID }|--|| books_208b5502.books_f4a675c8::ID
books_208b5502.celebrityupdates_f5088e8b::Celebrity Id ||--|| books_208b5502.celebrities_db1258df::Id
books_208b5502.customerdata_b0af83c6::CUSTOMERID }|--|| books_208b5502.customers_f705d773::ID : FK_CUSTOMER
books_208b5502.βιβλία_3cecb755::ΕΚΔΌΤΗΣ }|--|| books_208b5502.publishers_8037d535::ID : FK_ΒΙΒΛΊΑ_PUBLISHERS
publishersales_7f7f6c20.sales_751e68cc::POSTALCODE }|--|| publishersales_7f7f6c20.regions_dbf65bbf::POSTALCODE : FK_SALES_REGIONS
publishersales_7f7f6c20.sales_751e68cc::COUNTRY }|--|| publishersales_7f7f6c20.regions_dbf65bbf::COUNTRY : FK_SALES_REGIONS
publishersales_7f7f6c20.sales_751e68cc::SALESDATAID }o--|| publishersales_7f7f6c20.salesdata_1193fa76::SALESDATAID : FK_SALES_SALESDATA

@enduml

