Firefox 3

Data structure

First thing you need to do is to set up a database. What does it mean to "set up a database" anyway? It's putting data into table(s) and joining them via relations. Let's have a look on the raw data I copied from the Fantastic Fiction website:

  Hercule Poirot
  1. The Mysterious Affair at Styles (1920)
  2. The Murder on the Links (1923)
  3. Poirot Investigates (1924)
  4. The Murder of Roger Ackroyd (1926)
  5. The Big Four (1927)
  6. The Mystery of the Blue Train (1928)
  7. Peril at End House (1932)
  8. Lord Edgware Dies (1933)
       aka Thirteen at Dinner
  19. Hercule Poirot's Christmas (1938)
       aka A Holiday for Murder / Murder for Christmas
  Miss Marple
  1. The Murder at the Vicarage (1930)
  2. The Thirteen Problems (1932)
       aka The Tuesday Club Murders
  3. The Body in the Library (1942)

So, there are two protagonists, monsieur Hercule Poirot and Miss Marple, and some novels have alternative titles. You could then compile the data into one table like this:

  The Mysterious Affair at Styles||Hercules Poirot|1920
  The Murder on the Links||Hercules Poirot|1923
  Poirot Investigates||Hercules Poirot|1924
  The Murder of Roger Ackroyd||Hercules Poirot|1926
  The Big Four||Hercules Poirot|1927
  The Mystery of the Blue Train||Hercules Poirot|1928
  The Murder at the Vicarage||Miss Marple|1930
  Peril at End House||Hercules Poirot|1932
  The Thirteen Problems|The Tuesday Club Murders|Miss Marple|1932
  Lord Edgware Dies|Thirteen at Dinner|Hercules Poirot|1933
  Hercule Poirot's Christmas|A Holiday for Murder|Hercules Poirot|1938
  The Body in the Library||Miss Marple|1942

However, there are two problems here:

  1. redundant data ("Hercules Poirot" and "Miss Marple" are present several times)
  2. no way to insert Hercule Poirot's Christmas second alternative title (Murder for Christmas)

Redundant data is bad: not only it occupies space, but it may also become incoherent (eg. because of typos). Furthermore, in case a change is needed, you would have to change all instances.–Lack of data is even worse. There must be a way to insert this second alternative title!