Click to login

Specifications for tables related to keys


Home    

Fields are shown under each table.  Comments about future changes or unresolved design issues are shown in contrasting color.   Version specific features are noted by highlighted text.

  • tblKeyGroups, group of one or more taxa that can be separated by using a key block (only one row in table per group)
    • GroupID, integer, 2 bytes, identifier for group
    • TaxonNameID, integer, 4 bytes, = tblTaxa.TaxonNameID, identifier for taxon that group is based upon.
    • CompCode, integer, 1 byte, component code:
      • 1 = group matches this taxon
      • 2 = group includes only the taxa enumerated in tblGroupTaxa (all subordinate to the taxon identified by TaxonNameID)
      • 3 = group includes all the taxa subordinate to the taxon identified by TaxonNameID except those listed tblGroupTaxa.
    • OtherInfo, string, 200 bytes, qualifying information for the group (may be null string)
    • AccessCode, integer, 2 bytes
    • Status, integer, 1 byte, 0 = clear, 1 = impaired.  Deleted in version 3.4.
    • LastUpdate, smalldatetime, date and time of last update
    • ModifiedBy, integer, 2 bytes, UserID of the signon that made the change
    • ImpairedFlags, integer, 1 byte interpreted bitwise, reasons for impairment (taxonomist review needed to check if revision of related key blocks is needed).  Bit values:
      • 1 = Under development.
      • 2 = An editor marked it as impaired.
      • 4 = A new member was added to the group.
      • 8 = A member was removed from the group.
      • 16 = Encompassing member changed position in hierarchy.
      • 32 = A genus or species no longer contains subs.
      • 64 = Reason unknown, impairment was recorded before reasons were tracked.
  • tblGroupTaxa, subordinate to tblKeyGroups, enumeration of TaxonNameIDs by GroupID (tblKeyGroups.GroupID).  If GroupID = n, then taxon member of group n
    • GroupID, 2 bytes, group identifier of which this taxon is a member
    • TaxonNameID, 4 bytes, = tblTaxon.ID, taxon included or excluded as specified by tblKeyGroups.CompCode
    • LastUpdate, smalldatetime, date and time of last update
    • ModifiedBy, integer, 2 bytes, UserID of the signon that made the change
  • tblKeyBlocks, decision blocks for working through keys.  Note:  There may be multiple blocks for the same group.  This can happen depending on geographic scope, or there may be different ways to split the group depending on what characters are available.
    • BlockID, integer, 2 bytes, identifier for key block
    • BlockType, integer, 1 byte
      • 1 = dichotomous block (multiple characters, 2 branches); BranchID = 1 or 2; CharID ranges from 0 to 127
      • 4 = matrix (multiple characters, multiple branches); BranchID ranges from 1 to 127; CharID ranges from 0 to 127
    • SGroupID, integer, 2 bytes, = tblKeyGroups.GroupID "Stem" group ID for this block
    • AccessCode, integer, 2 bytes
    • Status, integer, 1 byte, 0 = clear, 1=impaired, 2=under development.  Deleted in version 3.4.
    • SourceID, integer, 2 bytes, = tblSources.SourceID
    • EditingNote, text, 100 characters maximum, information useful to the person adding or editing the key
    • LastUpdate, smalldatetime, date and time of last update
    • ModifiedBy, integer, 2 bytes, UserID of the signon that made the change
    • ImpairedFlags, integer, 1 byte interpreted bitwise, reasons for impairment (taxonomist review needed to check if revision is needed).  Bit values:
      • 1 = Under development.
      • 2 = An editor marked it as impaired.
      • 4 = One or more related groups is impaired.  Related groups include tblKeyBlocks.SGroupID and tblKeyBlockBranches.GroupID where tbkeyBlockBranches.BlockID = tblKeyBlocks.BlockID.
    • PublicNote, text, 300 characters maximum, public note to be shown by key drivers.  Added in version 3.4.
  • tblKeyChars, pool of characters available for use in blocks
    • CharID, integer, 2 bytes
    • Title, 200 characters maximum, identifying phrase for the character
    • CharTypeID, integer, 1 byte, = tblCharTypes.CharTypeID, identifier for type of character future development
    • Priority, integer, 1 byte, 10 = highest priority single character, 9 = next highest priority character in case first one not available (wrong sex, no sound, etc.), 8 = next highest priority, etc. until a generally available character is reached future development
    • Reliability, integer, 1 byte, estimated reliability of of character, 10 = very reliable down to 1 for characters with substantial overlap among the available choices, 0 indicates reliability has not been entered future development
    • LastUpdate, smalldatetime, date and time of last update
    • ModifiedBy, integer, 2 bytes, UserID of the signon that made the change
  • tblCharTypes, types of characters future development
    • CharTypeID, integer, 1 byte, identifier for type of character
    • Type, text, 35 characters maximum
      • 0 = short, quick version
      • 1 = external morphology, both sexes
      • 2 = color
      • 3 = external morphology, male only
      • 4 = external morphology, female only
      • 5 = internal morphology
      • 6 = sound
      • 7 = geographic range
      • 8 = seasonal occurence
      • 9 = habitat
      • 10 = behavior (other than sound)
  • tblKeyCharStates, subordinate to tblKeyChars, description of each character state for each character in tblKeyChars
    • CharID, integer, 2 bytes, = tblKeyChars.CharID
    • CharStateID, integer, 2 bytes, identifier for this character state; CharID and CharStateID form a composite primary key
    • LastUpdate, smalldatetime, date and time of last update
    • ModifiedBy, integer, 2 bytes, UserID of the signon that made the change
  • tblCharStateDetails, subordinate to tblKeyCharStates, display details for character states
    • CharID, integer, 2 bytes, = tblKeyChars.CharID
    • CharStateID, integer, 2 bytes, = tblKeyCharStates.CharID
    • SeqNum, integer, 1 byte, sequence for display components; CharID, CharStateID and SeqNum form a composite primary key
    • Type, integer, 2 bytes
      • 1 = text
      • 2 = image
      • 3 = sound
      • 4 = list of image coordinates
    • Text, 1500 characters maximum
    • ImageID, integer, 4 bytes, = tblImages.ImageID
    • SoundID, integer, 2 bytes, = tblSounds.SoundID
    • LastUpdate, smalldatetime, date and time of last update
    • ModifiedBy, integer, 2 bytes, UserID of the signon that made the change
  • tblKeyBlockChars, linking table to match blocks and characters
    • BlockID, integer, 2 bytes, = tblKeyBlocks.BlockID
    • CharIndex, integer, 1 byte, index giving position of character in block; BlockID and CharIndex form a composite primary key.  CharIndex is zero based.  Values range from 0 to 126.  Value of 127 is reserved for swapping the indices of two characters.
    • CharID, integer, 2 bytes, = tblKeyChars.CharID
    • LastUpdate, smalldatetime, date and time of last update
    • ModifiedBy, integer, 2 bytes, UserID of the signon that made the change
  • tblKeyBlockBranches, subordinate to tblKeyBlocks, list giving group selected for each branch
    • BlockID, integer, 2 bytes, = tblKeyBlocks.BlockID
    • BranchIndex, integer, 1 byte; BlockID and BranchIndex form a composite primary key.  BranchIndex is zero based.  Values range from 0 to 126.  Value of 127 is reserved for swapping the indices of two branches.
    • GroupID, integer, 2 bytes, = tblKeyGroups.GroupID, the destination group if this branch is selected
    • LastUpdate, smalldatetime, date and time of last update
    • ModifiedBy, integer, 2 bytes, UserID of the signon that made the change
  • tblBlockCharStates, linking table to match block character (specific to block) with key character (pool of all characters)
    • BlockID, integer, 2 bytes, = tblKeyBlocks.BlockID and tblKeyBlockChars.BlockID
    • CharIndex, integer, 1 byte, = tblKeyBlockChars.CharIndex
    • CharStateIndex, integer, 1 byte, index giving position of character state within character; BlockID, CharIndex and CharStateIndex form a composite primary key.  CharStateIndex is zero based.  Values range from 0 to 125.  Value of 126 is reserved for header information for the character.  Value of 127 is reserved for swapping the indices of two character states.
    • CharID, integer, 2 bytes, = tblKeyChars.CharID and tblKeyCharStates.CharID
    • CharStateID, integer, 2 bytes, = tblKeyCharStates.CharStateID
    • LastUpdate, smalldatetime, date and time of last update
    • ModifiedBy, integer, 2 bytes, UserID of the signon that made the change
  • tblBranchCharStates, linking table for block to match branch with character state
    • BlockID, integer, 2 bytes, = tblKeyBlocks.BlockID
    • BranchIndex, integer, 1 byte, = tblKeyBlockBranches.BranchIndex
    • CharIndex, integer, 1 byte, = tblBlockCharStates.CharIndex
    • CharStateIndex, 1 byte; BlockID, BranchIndex, CharIndex and CharStateIndex form a composite primary key
    • Code, integer, 1 byte, relationship of character state to branch
      • 0 = not specified
      • 1 = state in branch unknown; if a branch has this setting for one state, it must have this for all states of that character
      • 2 = not applicable to this branch; if a branch has this setting for one state, it must have this for all states of that character
      • 3 = state never found in branch; if all but one state for a character have this setting, then the remaining state for the branch must be 6
      • 4 = state found only rarely in branch
      • 5 = states found commonly in branch
      • 6 = sole state found in branch; if a branch has this setting for one state, all other states for that character must be 3
    • LastUpdate, smalldatetime, date and time of last update
    • ModifiedBy, integer, 2 bytes, UserID of the signon that made the change