RM5+Database+System+Catalog

A singular system table, sqlite_master, resides in a SQLite database. The table in the RootsMagic 5 database essentially defines the RootsMagic 5 database tables, indices, and fields, as below.

Differences in structure with RootsMagic 4 include the addition of a new table, ResearchItemTable (and its index), to incorporate the newly-incorporated Research Log feature. In addition, MultimediaTable now includes five additional fields to account for the revised treatment of media throughout the program.


 * type || name || tbl_name || rootpage || sql ||
 * table || ConfigTable || ConfigTable || 2 || CREATE TABLE ConfigTable (RecID INTEGER PRIMARY KEY, RecType INTEGER, Title TEXT, DataRec BLOB ) ||
 * index || idxRecType || ConfigTable || 3 || CREATE INDEX idxRecType ON ConfigTable (RecType) ||
 * table || PersonTable || PersonTable || 4 || CREATE TABLE PersonTable (PersonID INTEGER PRIMARY KEY, UniqueID TEXT, Sex INTEGER, EditDate FLOAT, ParentID INTEGER, SpouseID INTEGER, Color INTEGER, Relate1 INTEGER, Relate2 INTEGER, Flags INTEGER, Living INTEGER, IsPrivate INTEGER, Proof INTEGER, Bookmark INTEGER, Note BLOB ) ||
 * table || FamilyTable || FamilyTable || 5 || CREATE TABLE FamilyTable (FamilyID INTEGER PRIMARY KEY, FatherID INTEGER, MotherID INTEGER, ChildID INTEGER, HusbOrder INTEGER, WifeOrder INTEGER, IsPrivate INTEGER, Proof INTEGER, SpouseLabel INTEGER, FatherLabel INTEGER, MotherLabel INTEGER, Note BLOB ) ||
 * index || idxFamilyFatherID || FamilyTable || 6 || CREATE INDEX idxFamilyFatherID ON FamilyTable (FatherID) ||
 * index || idxFamilyMotherID || FamilyTable || 8 || CREATE INDEX idxFamilyMotherID ON FamilyTable (MotherID) ||
 * table || ChildTable || ChildTable || 10 || CREATE TABLE ChildTable (RecID INTEGER PRIMARY KEY, ChildID INTEGER, FamilyID INTEGER, RelFather INTEGER, RelMother INTEGER, ChildOrder INTEGER, IsPrivate INTEGER, ProofFather INTEGER, ProofMother INTEGER, Note BLOB ) ||
 * index || idxChildID || ChildTable || 11 || CREATE INDEX idxChildID ON ChildTable (ChildID) ||
 * index || idxChildFamilyID || ChildTable || 12 || CREATE INDEX idxChildFamilyID ON ChildTable (FamilyID) ||
 * index || idxChildOrder || ChildTable || 13 || CREATE INDEX idxChildOrder ON ChildTable (ChildOrder) ||
 * table || EventTable || EventTable || 14 || CREATE TABLE EventTable (EventID INTEGER PRIMARY KEY, EventType INTEGER, OwnerType INTEGER, OwnerID INTEGER, FamilyID INTEGER, PlaceID INTEGER, SiteID INTEGER, Date TEXT, SortDate INTEGER, IsPrimary INTEGER, IsPrivate INTEGER, Proof INTEGER, Status INTEGER, EditDate FLOAT, Sentence BLOB, Details BLOB, Note BLOB ) ||
 * index || idxOwnerEvent || EventTable || 15 || CREATE INDEX idxOwnerEvent ON EventTable (OwnerID,EventType) ||
 * index || idxOwnerDate || EventTable || 17 || CREATE INDEX idxOwnerDate ON EventTable (OwnerID,SortDate) ||
 * table || AddressTable || AddressTable || 18 || CREATE TABLE AddressTable (AddressID INTEGER PRIMARY KEY, AddressType INTEGER, Name TEXT COLLATE RMNOCASE, Street1 TEXT, Street2 TEXT, City TEXT, State TEXT, Zip TEXT, Country TEXT, Phone1 TEXT, Phone2 TEXT, Fax TEXT, Email TEXT, URL TEXT, Latitude INTEGER, Longitude INTEGER, Note BLOB ) ||
 * index || idxAddressName || AddressTable || 19 || CREATE INDEX idxAddressName ON AddressTable (Name) ||
 * table || FactTypeTable || FactTypeTable || 20 || CREATE TABLE FactTypeTable (FactTypeID INTEGER PRIMARY KEY, OwnerType INTEGER, Name TEXT COLLATE RMNOCASE, Abbrev TEXT, GedcomTag TEXT, UseValue INTEGER, UseDate INTEGER, UsePlace INTEGER, Sentence BLOB, Flags INTEGER ) ||
 * index || idxFactTypeName || FactTypeTable || 21 || CREATE INDEX idxFactTypeName ON FactTypeTable (Name) ||
 * index || idxFactTypeAbbrev || FactTypeTable || 22 || CREATE INDEX idxFactTypeAbbrev ON FactTypeTable (Abbrev) ||
 * index || idxFactTypeGedcomTag || FactTypeTable || 24 || CREATE INDEX idxFactTypeGedcomTag ON FactTypeTable (GedcomTag) ||
 * table || MultimediaTable || MultimediaTable || 25 || CREATE TABLE MultimediaTable (MediaID INTEGER PRIMARY KEY, MediaType INTEGER, MediaPath TEXT, MediaFile TEXT COLLATE RMNOCASE, URL TEXT, Thumbnail BLOB, Caption TEXT COLLATE RMNOCASE, RefNumber TEXT COLLATE RMNOCASE, Date TEXT, SortDate INTEGER, Description BLOB) ||
 * index || idxMediaFile || MultimediaTable || 26 || CREATE INDEX idxMediaFile ON MultimediaTable (MediaFile) ||
 * index || idxMediaURL || MultimediaTable || 27 || CREATE INDEX idxMediaURL ON MultimediaTable (URL) ||
 * table || MediaLinkTable || MediaLinkTable || 28 || CREATE TABLE MediaLinkTable (LinkID INTEGER PRIMARY KEY, MediaID INTEGER, OwnerType INTEGER, OwnerID INTEGER, IsPrimary INTEGER, Include1 INTEGER, Include2 INTEGER, Include3 INTEGER, Include4 INTEGER, SortOrder INTEGER, RectLeft INTEGER, RectTop INTEGER, RectRight INTEGER, RectBottom INTEGER, Note TEXT, Caption TEXT COLLATE RMNOCASE, RefNumber TEXT COLLATE RMNOCASE, Date TEXT, SortDate INTEGER, Description BLOB ) ||
 * index || idxMediaOwnerID || MediaLinkTable || 30 || CREATE INDEX idxMediaOwnerID ON MediaLinkTable (OwnerID) ||
 * index || idxMediaCaption || MediaLinkTable || 31 || CREATE INDEX idxMediaCaption ON MediaLinkTable (Caption) ||
 * table || NameTable || NameTable || 32 || CREATE TABLE NameTable (NameID INTEGER PRIMARY KEY, OwnerID INTEGER, Surname TEXT COLLATE RMNOCASE, Given TEXT COLLATE RMNOCASE, Prefix TEXT COLLATE RMNOCASE, Suffix TEXT COLLATE RMNOCASE, Nickname TEXT COLLATE RMNOCASE, NameType INTEGER, Date TEXT, SortDate INTEGER, IsPrimary INTEGER, IsPrivate INTEGER, Proof INTEGER, EditDate FLOAT, Sentence BLOB, Note BLOB, BirthYear INTEGER, DeathYear INTEGER ) ||
 * index || idxNameOwnerID || NameTable || 34 || CREATE INDEX idxNameOwnerID ON NameTable (OwnerID) ||
 * index || idxSurname || NameTable || 35 || CREATE INDEX idxSurname ON NameTable (Surname) ||
 * index || idxGiven || NameTable || 36 || CREATE INDEX idxGiven ON NameTable (Given) ||
 * index || idxSurnameGiven || NameTable || 37 || CREATE INDEX idxSurnameGiven ON NameTable (Surname, Given, BirthYear, DeathYear) ||
 * index || idxNamePrimary || NameTable || 38 || CREATE INDEX idxNamePrimary ON NameTable (IsPrimary) ||
 * table || PlaceTable || PlaceTable || 39 || CREATE TABLE PlaceTable (PlaceID INTEGER PRIMARY KEY, PlaceType INTEGER, Name TEXT COLLATE RMNOCASE, Abbrev TEXT, Normalized TEXT, Latitude INTEGER, Longitude INTEGER, LatLongExact INTEGER, MasterID INTEGER, Note BLOB ) ||
 * index || idxPlaceName || PlaceTable || 41 || CREATE INDEX idxPlaceName ON PlaceTable (Name) ||
 * index || idxPlaceAbbrev || PlaceTable || 42 || CREATE INDEX idxPlaceAbbrev ON PlaceTable (Abbrev) ||
 * table || ResearchTable || ResearchTable || 43 || CREATE TABLE ResearchTable (TaskID INTEGER PRIMARY KEY, TaskType INTEGER, OwnerID INTEGER, OwnerType INTEGER, RefNumber TEXT, Name TEXT COLLATE RMNOCASE, Status INTEGER, Priority INTEGER, Date1 TEXT, Date2 TEXT, Date3 TEXT, SortDate1 INTEGER, SortDate2 INTEGER, SortDate3 INTEGER, Filename TEXT, Details BLOB ) ||
 * index || idxResearchOwnerID || ResearchTable || 44 || CREATE INDEX idxResearchOwnerID ON ResearchTable (OwnerID) ||
 * index || idxResearchName || ResearchTable || 45 || CREATE INDEX idxResearchName ON ResearchTable (Name) ||
 * table || SourceTable || SourceTable || 46 || CREATE TABLE SourceTable (SourceID INTEGER PRIMARY KEY, Name TEXT COLLATE RMNOCASE, RefNumber TEXT, ActualText TEXT, Comments TEXT, IsPrivate INTEGER, TemplateID INTEGER, Fields BLOB ) ||
 * index || idxSourceName || SourceTable || 48 || CREATE INDEX idxSourceName ON SourceTable (Name) ||
 * table || CitationTable || CitationTable || 49 || CREATE TABLE CitationTable (CitationID INTEGER PRIMARY KEY, OwnerType INTEGER, SourceID INTEGER, OwnerID INTEGER, Quality TEXT, IsPrivate INTEGER, Comments BLOB, ActualText BLOB, RefNumber TEXT, Flags INTEGER, Fields BLOB ) ||
 * index || idxCitationSourceID || CitationTable || 50 || CREATE INDEX idxCitationSourceID ON CitationTable (SourceID) ||
 * index || idxCitationOwnerID || CitationTable || 51 || CREATE INDEX idxCitationOwnerID ON CitationTable (OwnerID) ||
 * table || AddressLinkTable || AddressLinkTable || 52 || CREATE TABLE AddressLinkTable (LinkID INTEGER PRIMARY KEY, OwnerType INTEGER, AddressID INTEGER, OwnerID INTEGER, AddressNum INTEGER, Details TEXT ) ||
 * table || WitnessTable || WitnessTable || 53 || CREATE TABLE WitnessTable (WitnessID INTEGER PRIMARY KEY, EventID INTEGER, PersonID INTEGER, WitnessOrder INTEGER, Role INTEGER, Sentence TEXT, Note BLOB, Given TEXT COLLATE RMNOCASE, Surname TEXT COLLATE RMNOCASE, Prefix TEXT COLLATE RMNOCASE, Suffix TEXT COLLATE RMNOCASE ) ||
 * index || idxWitnessEventID || WitnessTable || 55 || CREATE INDEX idxWitnessEventID ON WitnessTable (EventID) ||
 * index || idxWitnessPersonID || WitnessTable || 56 || CREATE INDEX idxWitnessPersonID ON WitnessTable (PersonID) ||
 * table || LinkTable || LinkTable || 57 || CREATE TABLE LinkTable (LinkID INTEGER PRIMARY KEY, extSystem INTEGER, LinkType INTEGER, rmID INTEGER, extID TEXT, Modified INTEGER, extVersion TEXT, extDate FLOAT, Status INTEGER, Note BLOB ) ||
 * index || idxLinkRmId || LinkTable || 58 || CREATE INDEX idxLinkRmId ON LinkTable (rmID) ||
 * index || idxLinkExtId || LinkTable || 59 || CREATE INDEX idxLinkExtId ON LinkTable (extID) ||
 * table || RoleTable || RoleTable || 60 || CREATE TABLE RoleTable (RoleID INTEGER PRIMARY KEY, RoleName TEXT COLLATE RMNOCASE, EventType INTEGER, RoleType INTEGER, Sentence TEXT ) ||
 * index || idxRoleEventType || RoleTable || 62 || CREATE INDEX idxRoleEventType ON RoleTable (EventType) ||
 * table || GroupTable || GroupTable || 63 || CREATE TABLE GroupTable (RecID INTEGER PRIMARY KEY, GroupID INTEGER, StartID INTEGER, EndID INTEGER ) ||
 * table || ExclusionTable || ExclusionTable || 64 || CREATE TABLE ExclusionTable (RecID INTEGER PRIMARY KEY, ExclusionType INTEGER, ID1 INTEGER, ID2 INTEGER ) ||
 * index || idxExclusionIndex || ExclusionTable || 65 || CREATE UNIQUE INDEX idxExclusionIndex ON ExclusionTable (ExclusionType, ID1, ID2) ||
 * table || SourceTemplateTable || SourceTemplateTable || 66 || CREATE TABLE SourceTemplateTable (TemplateID INTEGER PRIMARY KEY, Name TEXT COLLATE RMNOCASE, Description TEXT, Favorite INTEGER, Category TEXT, Footnote TEXT, ShortFootnote TEXT, Bibliography TEXT, FieldDefs BLOB ) ||
 * index || idxSourceTemplateName || SourceTemplateTable || 67 || CREATE INDEX idxSourceTemplateName ON SourceTemplateTable (Name) ||
 * table || LabelTable || LabelTable || 69 || CREATE TABLE LabelTable (LabelID INTEGER PRIMARY KEY, LabelType INTEGER, LabelValue INTEGER, LabelName TEXT COLLATE RMNOCASE, Description TEXT ) ||
 * index || idxLabelType || LabelTable || 70 || CREATE INDEX idxLabelType ON LabelTable (LabelType) ||
 * table || ResearchItemTable || ResearchItemTable || 288 || CREATE TABLE ResearchItemTable (ItemID INTEGER PRIMARY KEY, LogID INTEGER, Date TEXT, SortDate INTEGER, RefNumber TEXT, Repository TEXT, Goal TEXT, Source TEXT, Result TEXT ) ||
 * index || idxResearchItemLogID || ResearchItemTable || 304 || CREATE INDEX idxResearchItemLogID ON ResearchItemTable (LogID) ||