Difference between revisions of "Database Schema"

From ISFDB
Jump to navigation Jump to search
(→‎Global Tables: Moved MediaWiki pages to a separate section)
(→‎Introduction: 2016 update)
Line 1: Line 1:
 +
This page lists all MySQL tables used by the ISFDB software and links to more detailed pages which provide a field-level view of each table.
 +
 
==Introduction==
 
==Introduction==
  
There are three primary document views utilized by the ISFDB: showing the bibliography of an author, showing the titles present in a publication, and showing the publications in which a title was published. These views require three primary tables: authors, titles, and publications. Various normalization tables are provided to reduce errors and storage needs.
+
The ISFDB is built around the following types of records:
 +
 
 +
* authors, which include editors and artists
 +
* publications, i.e. any separate appearances of SF-related works, mostly books and magazines
 +
* titles, i.e. separate works of fiction, non-fiction and art which can appear in one or more publications
 +
* series, i.e. groups of related titles
 +
* publishers
 +
* publication series, that is otherwise unrelated publications grouped together by the publisher, e.g. ''Ace Double''
 +
* awards
  
The illustration below shows the relationship between the various tables. All notes are stored in the notes table, which other tables refer to via the primary note_id key. The metadata table contains data pertinent to the database itself.
+
Note that all notes are stored in the notes table, which other tables refer to via the primary note_id key. The metadata table contains data pertinent to the database itself.
  
A high-level explanation of the database can be found in the [[Database Overview]] article. An out-of-date diagram of the ISFDB tables and their relationships can be found [http://www.isfdb.org/isfdb_schema.png here].
+
A high-level explanation of the database can be found in the [[Database Overview]] article (out of date.) An out-of-date diagram of the ISFDB tables and their relationships can be found [http://www.isfdb.org/isfdb_schema.png here].
  
 
==Global Tables==
 
==Global Tables==

Revision as of 18:54, 3 September 2016

This page lists all MySQL tables used by the ISFDB software and links to more detailed pages which provide a field-level view of each table.

Introduction

The ISFDB is built around the following types of records:

  • authors, which include editors and artists
  • publications, i.e. any separate appearances of SF-related works, mostly books and magazines
  • titles, i.e. separate works of fiction, non-fiction and art which can appear in one or more publications
  • series, i.e. groups of related titles
  • publishers
  • publication series, that is otherwise unrelated publications grouped together by the publisher, e.g. Ace Double
  • awards

Note that all notes are stored in the notes table, which other tables refer to via the primary note_id key. The metadata table contains data pertinent to the database itself.

A high-level explanation of the database can be found in the Database Overview article (out of date.) An out-of-date diagram of the ISFDB tables and their relationships can be found here.

Global Tables

Information stored in the global tables are shared across the title, author, and publication related tables in the ISFDB.

MediaWiki/User Tables

The ISFDB uses MediaWiki software to run its Wiki. See this MediaWiki chart for lists of table fields. The following MediaWiki pages are also used by the ISFDB software:

  • mw_page - Information about all Wiki pages. Used by the nightly cleanup reports to find Wiki-ISFDB mismatches.
  • mw_user‎ - User ID, name and other user-specific information. The version in publicly available backups has been cleansed of all private data.
  • mw_user‎_group - Includes the Wiki group (editors, moderators/sysops or bureaucrats) to which each user belongs.

Author-Related Tables

The following tables are used to store information about authors and their works:

Publication-Related Tables

The following tables are used to store information about publications:

Title-Related Tables

The following tables are used to store information about titles:

Awards-Related Tables

The following tables are used to store information about awards:

Transliteration Tables

Data Cleanup Tables