Database Design

database objects

I've changed authors/publishers to a more flexible contributor object. This will allow us to define things like "directors that write", "poets who publish", or even "volcanos creating lava rocks".

The actual database tables shape up looking as follows:

material

K Idx Name Type
x
material_id int

idx1 title char(128)

idx2 call_number char(10)

idx3 ISBN char(40)


copyright date


volume char(12)


issue int


image_url varchar(128)


sound_url varchar(128)


location_id int


form_id int


description text


genre_id int
 

location

K Idx Name Type
x
location_id int

idx1 name char(48)


description text


image_url varchar(128)
 

form

K Idx Name Type
x
form_id int

idx1 name char(48)


description text
 

subject_link

K Idx Name Type
x
subject_link_id int

idx1 material_id int

idx2 subject_id int
 

subject

K Idx Name Type
x
subject_id int

idx1 term char(24)
 

contributor_link

K Idx Name Type
x
contributor_link_id int

idx1 material_id int

idx2 contributor_id int
 

contributor

K Idx Name Type
x
contributor_id int

idx1 name char(48)


description text


image_url varchar(128)


web_page varchar(128)
 

genre

K Idx Name Type
x
genre_id int

idx1 name char(48)


description text