Click to login

Specifications for tables related to keys


Home     Manual

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:
      • Flags under editor control
        • 1 = An editor marked it as under development.
        • 2 = An editor marked it as needing more work.
        • 4 = A new member was added to the group.
        • 8 = A member was removed from the group.
      • Flags under program control
        • 16 = Encompassing taxon is at higher rank than necessary.
        • 32 = Component is not subordinate to encompassing member.
        • 64 = A listed taxon is not a valid or temporary name.
        • 128 = Count of components is inconsistent with CompCode.
        • 256 = There is no taxon left in group after the list of exclusions.
        • 512 = Included component list matches content of encompassing taxon.
        • 1024 = A listed component is the same as or subordinate to another listed component.
  • 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.TaxonNameID, 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 = A branch lacks a specified group.
      • 2 = An editor marked it as needing more work.
      • 4 = One or more related groups is impaired.  Related groups include tblKeyBlocks.SGroupID and tblKeyBlockBranches.GroupID where tbkeyBlockBranches.BlockID = tblKeyBlocks.BlockID.
      • 8 = An editor marked it as under development.
      • 16 = Characters are not fully specified.
      • 32 = One or more taxa in a branch group not contained in the stem group.
    • 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.  (Do not confuse this with the character header used for blocks.  The header is found in tblCharStateDetails where CharStateID is found in tblBlockCharStates where CharStateIndex = 126.)
    • 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, integer, 1 byte
      • 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)
    • Text, 35 characters maximum, as listed above for Type
  • 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 (allows for multiple display components for a single character state)
    • CharID, integer, 2 bytes, = tblKeyChars.CharID
    • CharStateID, integer, 2 bytes, = tblKeyCharStates.CharID
    • SeqNum, integer, 1 byte, 1-based sequence number 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 (not yet implemented)
    • 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, 0-based 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.  This is used for matrix blocks, but not for dichotomous blocks.
    • 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