Robert Christgau: Dean of American Rock Critics

Consumer Guide:
  User's Guide
  Grades 1990-
  Grades 1969-89
  And It Don't Stop
Books:
  Book Reports
  Is It Still Good to Ya?
  Going Into the City
  Consumer Guide: 90s
  Grown Up All Wrong
  Consumer Guide: 80s
  Consumer Guide: 70s
  Any Old Way You Choose It
  Don't Stop 'til You Get Enough
Xgau Sez
Writings:
  And It Don't Stop
  CG Columns
  Rock&Roll& [new]
  Rock&Roll& [old]
  Music Essays
  Music Reviews
  Book Reviews
  NAJP Blog
  Playboy
  Blender
  Rolling Stone
  Billboard
  Video Reviews
  Pazz & Jop
  Recyclables
  Newsprint
  Lists
  Miscellany
Bibliography
NPR
Web Site:
  Home
  Site Map
  Contact
  What's New?
    RSS
Carola Dibbell:
  Carola's Website
  Archive
CG Search:
Google Search:
Twitter:

Database Doc

Web Pages

There are several reasons for wanting to track web pages in the database:

  • Common encapsulation of URL, link text and description, which can be used consistently in various places (section listings, newest pages, site map, cross-references).
  • Ability to store meta tag information (desc, keyw, etc.) external to static web pages.
  • Page-to-page cross-references, which become a simple table of web page identifier pairs.

The web page table needs to track both local and external web pages, since cross-references should work equally well.

Table: url
idint unsigned auto_increment primary key: Unique identifier for linking to this table.
urlvarchar(255) not null: URL, can be local or external. Local URLs do not specify "http:" or hostname.
titlevarchar(127) null: Title text for constructing links to URL. If null, use url.
descrtext: Web page description, typically used after title in a cross-reference list. Can be used for meta description for local web pages.
keywtext: Meta keyword list for local pages. (Sort of a half-assed approach, since keyword search would be better implemented through separate tables.
metatext: Supplemental meta tag list for local pages.
mod_datedate null: Explicit modification date for local pages. Used for generating newest page list, general date sorting. Not necessarily updated for minor edits like fixing typos. Should be set for all local pages, null for all external pages.
Table: plink
pageint unsigned not null: Link to url for local web page.
linkint unsigned not null: Link to url for reference web page (local or external).
Table: alink
artist_idint unsigned not null references artist.id: Link to artist identifier.
url_idint unsigned not null references url.id: Link to url identifier.

What else?

  • A creation date as well as a modification date?
  • Page sequence information (perhaps best stored externally).
  • Fields for validating external URLs (date checked, last good date).
  • Backlink to article (could be used for generating tag lines; if 1:1, article could be found in second query based on url id).
  • Something to order a set of URLs (sort field in place of title, or something else?).

Bibliography

Table: author
idint unsigned auto_increment primary key:
namevarchar(127) not null: Author name.
sortvarchar(127) not null: Sort key for author name.
entrytext null:
Table: publication
idint unsigned auto_increment primary key:
namevarchar(127) not null: Publication name.
subtvarchar(127) null: Publication subtitle.
sortvarchar(127) not null: Sort key for publication name.
entrytext null:
sbnvarchar(31) null: Standard book number (non-books null).
Table: article
idint unsigned auto_increment primary key:
author_idint unsigned not null: Link to author table.
titlevarchar(255):
sortvarchar(120):
pub_datedate null:
pub_idint unsigned null: Link to publication table.
locvarchar(60):
urlint unsigned not null: Link to url table.

Artist/Album Lists

Table: rlist
listchar(4) not null: List identifier.
artist_idint unsigned not null references artist.id: Artist identifier.
Table: alist
listchar(4) not null: List identifier.
album_idint unsigned not null references album.id: Album identifier.
Table: ulist
listchar(4) not null: List identifie.
url_idint unsigned not null references url.id: URL identifier.
Table: listlist
listchar(4) not null: List identifier.
listgroupchar(4) not null: List group identifier: rg = Region.
titlevarchar(127) not null: List name.
sortvarchar(127) not null: Sort key.
descrvarchar(255) null: Table description.

These tables are used to create arbitrary subset lists of artists and/or albums. Some example uses of these lists:

  1. Generic Sets. Initially we defined two sets, each using rlist for associated artists, alist for compilations, and ulist for essays: Africa and Reggae.
  2. The lists of Consumer Guide entries that appeared during a decade but were not included in the corresponding Consumer Guide book. For example, Christgau's Consumer Guide: Albums of the '90s.