

Database Design for Books and Publishers
________________________________________________________________________



System Information
========================================================================

generated by                              SchemaCrawler 17.3.0          
generated on                              2026-01-11 21:22:23           



Tables
========================================================================



PUBLIC.BOOKS.AUTHORS                                             [table]
------------------------------------------------------------------------
Contact details for book authors
  ID                                INTEGER NOT NULL            
  FIRSTNAME                         VARCHAR(20) NOT NULL        
  LASTNAME                          VARCHAR(20) NOT NULL        
  ADDRESS1                          VARCHAR(255)                
  ADDRESS2                          VARCHAR(255)                
  CITY                              VARCHAR(50)                 
  STATE                             CHARACTER(2)                
  POSTALCODE                        VARCHAR(10)                 
  COUNTRY                           VARCHAR(50)                 
                                    default 'USA'               

Primary Key

PK_AUTHORS                                                 [primary key]
  ID                                                            

Foreign Keys

Z_FK_AUTHOR                                [foreign key, with no action]
  ID <--(1..many) PUBLIC.BOOKS.BOOKAUTHORS.AUTHORID                              

Indexes

PK_AUTHORS                                                [unique index]
  ID                                ascending                   

IDX_B_AUTHORS                                         [non-unique index]
  LASTNAME                          ascending                   
  FIRSTNAME                         ascending                   

IDX_A_AUTHORS                                         [non-unique index]
  CITY                              ascending                   
  STATE                             ascending                   
  POSTALCODE                        ascending                   
  COUNTRY                           ascending                   



PUBLIC.BOOKS.AUTHORSLIST                                          [view]
------------------------------------------------------------------------
  ID                                INTEGER                     
  FIRSTNAME                         VARCHAR(20)                 
  LASTNAME                          VARCHAR(20)                 



PUBLIC.BOOKS.BOOKAUTHORS                                         [table]
------------------------------------------------------------------------
Relationship between books and their authors, 
along with the latest updated information
  BOOKID                            INTEGER NOT NULL            
  AUTHORID                          INTEGER NOT NULL            
  SOMEDATA                          VARCHAR(30)                 

Foreign Keys

Z_FK_AUTHOR                                [foreign key, with no action]
  AUTHORID (1..many)--> PUBLIC.BOOKS.AUTHORS.ID                              

SYS_FK_10121                               [foreign key, with no action]
  BOOKID (1..many)--> PUBLIC.BOOKS.BOOKS.ID                              

Indexes

Z_FK_AUTHOR                                           [non-unique index]
  AUTHORID                          ascending                   

SYS_FK_10121                                          [non-unique index]
  BOOKID                            ascending                   

UIDX_BOOKAUTHORS                                          [unique index]
  BOOKID                            ascending                   
  AUTHORID                          ascending                   



PUBLIC.BOOKS.BOOKS                                               [table]
------------------------------------------------------------------------
Details for published books
  ID                                INTEGER NOT NULL            
                                    Unique (internal) id for book
  TITLE                             VARCHAR(255) NOT NULL       
                                    Book title                  
  DESCRIPTION                       VARCHAR(255)                
                                    Book description
(Usually the blurb from the book jacket or promotional materials)
  PUBLISHERID                       INTEGER NOT NULL            
                                    Foreign key to the book publisher
  PUBLICATIONDATE                   DATE                        
                                    Book publication date       
  PRICE                             DOUBLE(64, 0)               
                                    Current price for the book  
  PREVIOUSEDITIONID                 INTEGER                     

Primary Key

PK_BOOKS                                                   [primary key]
  ID                                                            

Foreign Keys

FK_SALES_BOOK                              [foreign key, with no action]
  ID <--(0..many) PUBLIC."PUBLISHER SALES".SALES.BOOKID                              

SYS_FK_10121                               [foreign key, with no action]
  ID <--(1..many) PUBLIC.BOOKS.BOOKAUTHORS.BOOKID                              

FK_PREVIOUSEDITION                         [foreign key, with no action]
  ID <--(0..1) PREVIOUSEDITIONID                                

Indexes

PK_BOOKS                                                  [unique index]
  ID                                ascending                   

U_PREVIOUSEDITION                                         [unique index]
  PREVIOUSEDITIONID                 ascending                   

FK_PREVIOUSEDITION                                    [non-unique index]
  PREVIOUSEDITIONID                 ascending                   



PUBLIC.BOOKS."Celebrities"                                       [table]
------------------------------------------------------------------------
  "Id"                              INTEGER NOT NULL            
  NAME                              VARCHAR(20)                 

Primary Key

"PK_Celebrities"                                           [primary key]
  "Id"                                                          

Foreign Keys

SYS_FK_10131                               [foreign key, with no action]
  "Id" <--(1..1) PUBLIC.BOOKS."Celebrity Updates"."Celebrity Id"                              

Indexes

"PK_Celebrities"                                          [unique index]
  "Id"                              ascending                   



PUBLIC.BOOKS."Celebrity Updates"                                 [table]
------------------------------------------------------------------------
  "Celebrity Id"                    INTEGER NOT NULL            
  "UPDATE"                          VARCHAR(20)                 

Primary Key

"PK Celebrity Updates"                                     [primary key]
  "Celebrity Id"                                                

Foreign Keys

SYS_FK_10131                               [foreign key, with no action]
  "Celebrity Id" (1..1)--> PUBLIC.BOOKS."Celebrities"."Id"                              

Indexes

"PK Celebrity Updates"                                    [unique index]
  "Celebrity Id"                    ascending                   

SYS_FK_10131                                          [non-unique index]
  "Celebrity Id"                    ascending                   



PUBLIC.BOOKS.COUPONS                                             [table]
------------------------------------------------------------------------
  ID                                INTEGER NOT NULL            
  DATA                              CLOB                        
  COUPONS                           INTEGER ARRAY               
                                    default ARRAY[]             
  BOOKS                             VARCHAR(20) ARRAY[10]       

Primary Key

PK_COUPONS                                                 [primary key]
  ID                                                            

Indexes

PK_COUPONS                                                [unique index]
  ID                                ascending                   



PUBLIC.BOOKS.CUSTOMERDATA                                        [table]
------------------------------------------------------------------------
  CUSTOMERID                        INTEGER NOT NULL            
  DATAID                            INTEGER NOT NULL            
  DATA                              VALID_STRING(20)            

Primary Key

PK_CUSTOMERDATA                                            [primary key]
  CUSTOMERID                                                    
  DATAID                                                        

Foreign Keys

FK_CUSTOMER                                [foreign key, with no action]
  CUSTOMERID (1..many)--> PUBLIC.BOOKS.CUSTOMERS.ID                              

Indexes

FK_CUSTOMER                                           [non-unique index]
  CUSTOMERID                        ascending                   

PK_CUSTOMERDATA                                           [unique index]
  CUSTOMERID                        ascending                   
  DATAID                            ascending                   



PUBLIC.BOOKS.CUSTOMERS                                           [table]
------------------------------------------------------------------------
  ID                                INTEGER NOT NULL            
  FIRSTNAME                         NAME_TYPE(100) NOT NULL     
  LASTNAME                          NAME_TYPE(100) NOT NULL     
  AGE                               AGE_TYPE                    

Primary Key

PK_CUSTOMERS                                               [primary key]
  ID                                                            

Foreign Keys

FK_CUSTOMER                                [foreign key, with no action]
  ID <--(1..many) PUBLIC.BOOKS.CUSTOMERDATA.CUSTOMERID                              

Indexes

PK_CUSTOMERS                                              [unique index]
  ID                                ascending                   



PUBLIC.BOOKS.PUBLISHERS                                          [table]
------------------------------------------------------------------------
List of book publishers
  ID                                INTEGER NOT NULL            
                                    auto-incremented            
                                    Unique (internal) id for book publisher
  PUBLISHER                         VARCHAR(255)                
                                    Name of book publisher      

Primary Key

SYS_PK_10127                                               [primary key]
  ID                                                            

Foreign Keys

FK_ΒΙΒΛΊΑ_PUBLISHERS                       [foreign key, with no action]
  ID <--(1..many) PUBLIC.BOOKS.ΒΙΒΛΊΑ.ΕΚΔΌΤΗΣ                              

Indexes

SYS_PK_10127                                              [unique index]
  ID                                ascending                   



PUBLIC.BOOKS.ΒΙΒΛΊΑ                                              [table]
------------------------------------------------------------------------
  ΜΟΝΑΔΙΚΌΣ                         SMALLINT NOT NULL           
  ΤΊΤΛΟΣ                            VARCHAR(255) NOT NULL       
  ΠΕΡΙΓΡΑΦΉ                         VARCHAR(255)                
  ΕΚΔΌΤΗΣ                           SMALLINT NOT NULL           

Primary Key

PK_ΒΙΒΛΊΑ                                                  [primary key]
  ΜΟΝΑΔΙΚΌΣ                                                     

Foreign Keys

FK_ΒΙΒΛΊΑ_PUBLISHERS                       [foreign key, with no action]
  ΕΚΔΌΤΗΣ (1..many)--> PUBLIC.BOOKS.PUBLISHERS.ID                              

Indexes

FK_ΒΙΒΛΊΑ_PUBLISHERS                                  [non-unique index]
  ΕΚΔΌΤΗΣ                           ascending                   

PK_ΒΙΒΛΊΑ                                                 [unique index]
  ΜΟΝΑΔΙΚΌΣ                         ascending                   



PUBLIC."PUBLISHER SALES".REGIONS                                 [table]
------------------------------------------------------------------------
  CITY                              VARCHAR(50) NOT NULL        
  STATE                             VARCHAR(2) NOT NULL         
  POSTALCODE                        VARCHAR(10) NOT NULL        
  COUNTRY                           VARCHAR(50) NOT NULL        

Primary Key

PK_CUSTOMERS                                               [primary key]
  POSTALCODE                                                    
  COUNTRY                                                       

Foreign Keys

FK_SALES_REGIONS                           [foreign key, with no action]
  POSTALCODE <--(1..many) PUBLIC."PUBLISHER SALES".SALES.POSTALCODE                              
  COUNTRY <--(1..many) PUBLIC."PUBLISHER SALES".SALES.COUNTRY                              

Indexes

PK_CUSTOMERS                                              [unique index]
  POSTALCODE                        ascending                   
  COUNTRY                           ascending                   



PUBLIC."PUBLISHER SALES".SALES                                   [table]
------------------------------------------------------------------------
  POSTALCODE                        VARCHAR(10) NOT NULL        
  COUNTRY                           VARCHAR(50) NOT NULL        
  BOOKID                            INTEGER                     
  COUPON_ID                         INTEGER                     
  PERIODENDDATE                     DATE                        
  TOTALAMOUNT                       DOUBLE(64, 0)               
  SALESDATAID                       INTEGER                     

Foreign Keys

FK_SALES_BOOK                              [foreign key, with no action]
  BOOKID (0..many)--> PUBLIC.BOOKS.BOOKS.ID                              

FK_SALES_SALESDATA                         [foreign key, with no action]
  SALESDATAID (0..many)--> PUBLIC."PUBLISHER SALES".SALESDATA.SALESDATAID                              

FK_SALES_REGIONS                           [foreign key, with no action]
  POSTALCODE (1..many)--> PUBLIC."PUBLISHER SALES".REGIONS.POSTALCODE                              
  COUNTRY (1..many)--> PUBLIC."PUBLISHER SALES".REGIONS.COUNTRY                              

Indexes

FK_SALES_BOOK                                         [non-unique index]
  BOOKID                            ascending                   

FK_SALES_SALESDATA                                    [non-unique index]
  SALESDATAID                       ascending                   

FK_SALES_REGIONS                                      [non-unique index]
  POSTALCODE                        ascending                   
  COUNTRY                           ascending                   



PUBLIC."PUBLISHER SALES".SALESDATA                               [table]
------------------------------------------------------------------------
  SALESDATAID                       INTEGER                     
  YEARLYAMOUNT                      DOUBLE(64, 0)               

Foreign Keys

FK_SALES_SALESDATA                         [foreign key, with no action]
  SALESDATAID <--(0..many) PUBLIC."PUBLISHER SALES".SALES.SALESDATAID                              

Indexes

UQ_CUSTOMERS                                              [unique index]
  SALESDATAID                       ascending                   

