SQL newby here.
I have a complex database situation I would like to implement, involving books.
What I have come up with so far is three hierarchal terms that help me define all of this, each of which requires some sort of unique id.
A) Author B) Work - a unique author/title combination C) Volume - a production of a work in a specific edition
these are required to handle all the cases below:
you cannot have a book without an author (whether that is acknowledged or not), so I think this is primary.
the author may be a real person, or the pseudonym of a real person (or persons), or the author may be a name used by different authors on different titles. So now you have multiple connections to the author table.
an author can have many titles.
In cases 2 and 3, sometimes, there are co-authors on some titles, either real or pseudonymous.
Titles are not unique, there can be books by other authors with the same title.
The book can be released with a different title, either under the same author’s name, or a pseudonym. There could be multiple alternate titles.
each title by an author, can be released by multiple publishers, or a single publisher with multiple editions which are distinguishable, and need to be identified (differences could be book number, artist, design change, price, etc.)
each author-title relationship (called a work) can have multiple other author-title relationships. e.g. Peter could edit a book called Ghosts, which includes a story by John called Haunts, and another by Harry called Werewolf. These are common to all appearances of the work.
each publisher release can have multiple other author-title relationships. these are specific to a an individual volume. e.g. the cover artist for a book could be Tom, and the cover art could be a copy of his famous painting which has a title.
each piece of artwork could appear on multiple works by different authors. e.g. quite common for a piece of art to appear on an American book by one author, and a totally unrelated work by a different author, on a British book.
and then all of those relationships can be defined as to whether they apply only to the author, or to all editions of a work, or only a specific volume of a work. so I think I need a unique ID for author, another for work in a different table, and a third for volume, one to which I would be attaching a cover scan.
I think this structure might work, but it seems complex. Is it efficient?
author
go by multiplename
s?