@startuml !theme plain hide empty methods !procedure $schema($name, $slug) package "$name" as $slug <> !endprocedure !procedure $table($name, $slug) entity "$name" as $slug << (T, Orange) table >> !endprocedure !procedure $view($name, $slug) entity "$name" as $slug << (V, Aquamarine) view >> !endprocedure !procedure $pk($name) <&key> $name !endprocedure !procedure $fk($name) <&key> $name !endprocedure !procedure $column($name) {field} <&media-record> $name !endprocedure title "Publications Schema" $schema("PUBLICATIONS", "id_208b5502") { $table("AUTHORS", "id_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 } $table("BOOKS", "id_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 } $table("BOOKAUTHORS", "id_ead84c5d") { $fk("BOOKID"): INTEGER NOT NULL $fk("AUTHORID"): INTEGER NOT NULL $column("SOMEDATA"): VARCHAR } } $schema("PUBLISHER_SALES", "id_7f7f6c20") { $table("SALES", "id_751e68cc") { $column("POSTALCODE"): VARCHAR NOT NULL $column("COUNTRY"): VARCHAR NOT NULL $fk("BOOKID"): INTEGER $fk("COUPON_ID"): INTEGER $column("PERIODENDDATE"): DATE $column("TOTALAMOUNT"): DOUBLE } } id_208b5502.id_f521e766::ID ||--o{ id_208b5502.id_ead84c5d::AUTHORID : FK_AUTHOR id_208b5502.id_f4a675c8::ID ||--o{ id_7f7f6c20.id_751e68cc::BOOKID : FK_SALES_BOOK id_208b5502.id_f4a675c8::ID ||--o{ id_208b5502.id_ead84c5d::BOOKID : FK_BOOK @enduml