So the following are our notes on the OP schema. It's a bit informal, but should be good enough to get the point across. It's described in terms of data type; these might or might not all actually wind up DB tables, but they're the conceptual objects and relationships we need to track. (In particular, when I say "Enumeration" below, it means a relatively finite list, but they might be represented as either real enumerations or small tables.) Note that most pointers may be null -- the sad reality is that information is often incomplete. It's by no means final, but it's mostly right.
This is potentially interesting to programming or heraldry/OP geeks, and probably not to anyone else.
In no particular order (well, in the order they wound up in the white board sketch):
Crowned Head
Type: Crown Type
Name: SCA Name
Group: Group
Crown Type
Enumeration -- King, Baron, Prince, etc.
Group
Name: String
Type: Group Type
Contained By: Group
Group Type
Enumeration -- Kingdom, Barony, Shire, etc.
SCA Name
Name: String
Person: Person
IsRegistered: Boolean
Gender/Type: Gender/Type
Gender/Type
Enumeration: Unknown, Male, Female, Collective
Person
Primary Name: SCA Name
Resides In: Group
Current Mundane Name: Mundane Name
Registered Arms: String
Is Collective: Boolean
Is Living: Boolean
Mundane Name
Name: String
Person: Person
Gender/Type: Gender/Type
Award Level
Enumeration: Peerage, Upper Kingdom, Lower Kingdom, etc.
Award
Name: String ("Laurel", "Crescent", "AoA", etc)
Group: Group
Level: Award Level
Court
Crown 1, Crown 2: Crowned Head
Date: Date
Name of Court: String (optional, eg, "First Court of TRM")
Event: Event
Sequence: Integer (eg, first, second, third court of the event)
Event
Name: String
Hosting Group: Group
Bestowal
Court: Court
Recipient: SCA Name
Award: Award
Sequence: Integer
Data Source: Data Source (where we got the info from)
As Part Of: SCA Name (collective)
Data Source
Enumeration -- Court Report, Heard from Recipient, Other Kingdom OP, etc