Creative Commons Attribution-ShareAlike License All specifications for database designs and user experience (form tree map) are made available
by Wiki World Order under the Creative Commons Attribution-ShareAlike License, 2019.

SurvLoop: Database Design Specs

Databases
(Db)

Databases

Each record represents one Database being designed in SurvLoop, a collection of Tables, Fields, Definitions, and Business Rules often owned by a User. Information stored here can define core system settings.
8 Tables with Foreign Keys
Group: Databases
Type: Data
8 Fields Total
1 Outgoing Key
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Databases Unique ID

DbID
Number, Indexed, Primary Key

Database Owner User ID

Indicates the unique User ID number belonging to the owner of this Database.
DbUser
Number
Users(0,11)-(0,N)

Database Prefix

Indicates the short abbreviation which is used to start each Table Name within this Database. This is important for successfully creating and accessing all Database Tables.
DbPrefix
Text

Database Name

Indicates the main, casual, name of the Database in English.
DbName
Text

Database Description

Indicates the short tagline which is used to describe this Database. This is generally related to Search Engine Optimization.
DbDesc
Text-Long

Database Mission

Indicates the desired goals to be accomplished with this Database. This is important for reminding Users why they are using this system.
DbMission
Text-Long

Database Options

Indicates the multiple of various prime numbers which mark specific qualities of this Database.
Notes: %3 Simple Field Specifications
( default value: 1 )
DbOpts
Number

Total Tables

Indicates the cached total number of Tables which make up this Database.
( default value: 0 )
DbTables
Number

Total Fields

Indicates the cached total number of Fields which make up this Database.
( default value: 0 )
DbFields
Number
Tables
(Tbl)

Database Tables

Each record represents one Table in the Database, which is a collection of any number of Fields.
7 Tables with Foreign Keys
Group: Databases
Type: Data
14 Fields Total
2 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Tables Unique ID

TblID
Number, Indexed, Primary Key

Table Database ID

Indicates the unique Database ID number which this Table belongs to.
TblDatabase
Number
Databases(11,11)-(0,N)

Table Prefix

Indicates the short abbreviation which is used to start each Field Name within this Table. This is important for successfully creating and accessing all Table Fields.
TblAbbr
Text

Table Name (in Database)

Indicates the shorter Table Name without spaces or special characters which is used to technically identify this Table when accessing its records in the Database. During system use, the Database's Prefix will be added to the start of the Table Name in this record.
TblName
Text

Table Name (in English)

Indicates the main, casual, name of the Database Table in English.
TblEng
Text

Table Description

Indicates the full description of this Database Table. This should generally be a sentence or two describing what information is stored in a Table, why it is important, and perhaps why this information is being organized in the form of this Table.
TblDesc
Text-Long

Table Internal Notes

Indicates the any important Notes related to this Database Table. This can be important for providing documentation or other internal comments about how or why this Table was designed in this way.
TblNotes
Text-Long

Table Type

Indicates whether this Database Table stores Data, Subset data, data Linkages, or data Validation. This is important for internal organization and documentation of the Database Design.
Values: Data ; Subset ; Linking ; Validation ( default value: Data )
TblType
Text

Table Group

Indicates which Group of Table this record belongs to. This can be important for visually organizing Tables, and works best if Tables in the same Table Group are all adjacent in the Table Order within the Database.
TblGroup
Text

Table Sorting Order

Indicates the indexed order of this Table, relative to other Tables in the Database. This is only important for presenting the list of Tables to a Database Designer, and additional value can be added by using Table Groups.
( default value: 0 )
TblOrd
Number

Table Options

Indicates the multiple of various prime numbers which mark specific qualities of this Table.
Notes: %3 Table Has User-Defined Primary Key
( default value: 1 )
TblOpts
Number

Extension of Table

Indicates whether or not this Database Table is an extension of another Table. This means it inherits all of the other Table's fields, plus whatever you add here.
( default value: 0 )
TblExtend
Number
Database Tables(0,1)-(0,N)

Total Fields

Indicates the cached total number of Fields which make up this Table.
( default value: 0 )
TblNumFields
Number

Total Foreign Keys Outgoing

Indicates the cached total number of Foreign Fields in this Table which point to other Database Tables.
( default value: 0 )
TblNumForeignKeys
Number

Total Foreign Keys Incoming

Indicates the cached total number of Foreign Fields in other Tables which point to this Database Table.
( default value: 0 )
TblNumForeignIn
Number
Fields
(Fld)

Database Fields

Each record represents one data Field where specific information will be stored in the completed Database.
4 Tables with Foreign Keys
Group: Databases
Type: Data
39 Fields Total
4 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Fields Unique ID

FldID
Number, Indexed, Primary Key

Field Database ID

Indicates the unique Database ID number which this Field belongs to. This is important to track for generic fields which are not related to a specific Database Table.
FldDatabase
Number
Databases(11,11)-(0,N)

Field Table ID

Indicates the unique Table ID number which this Field belongs to.
Notes: The parent table where this field is used. Only Generic fields have no table assigned. (Hernandez p.279)

Field Sorting Order in Table

Indicates the indexed order of this Field, relative to other Fields within their Database Table. This is only important for presenting the list of Fields to a Database Designer.
( default value: 0 )
FldOrd
Number

Field Specification Type

Indicates whether this Database Field specification is Unique Field to this Table's instance, or is a Replica Field of a Generic Field shared by multiple Tables, or is itself a Generic Field. This can be important for documenting which Fields might need to maintain parallel changes in their specifications.
Notes: Unique - any kind of field that will appear only once within the entire database or a primary key; Generic - a field that serves as a template for other fields within the database; Replica - a field that you base on a given generic field or a foreign key; (Hernandez p.279)
Values: Unique ; Generic ; Replica ( default value: Unique )
FldSpecType
Text

Field Spec Generic Source

If this record specification type indicates that it stores a Replica Field, then this information represents the unique Field ID of related the Generic Field.
Notes: If this field is a Replica, the Specification Source is set to the Generic field which it mimics. To turn this field into a Replica, select a Generic field from the dropdown and click the Load link. To save a copy of this field as a Generic for future reuse, click the Save As Generic link. (Hernandez p.281)
( default value: -3 )
FldSpecSource
Number
Database Fields(0,N)-(0,N)

Field Name (in Database)

Indicates the shorter Field Name without spaces or special characters which is used to technically identify this Field when accessing its stored values in the Database. During system use, the Table's Prefix will be added to the start of the Field Name in this record.
Notes: Absolute minimal words that uniquely identifies this field, following database requirements (like probably no spaces). The table abbreviation name will be tacked on to the beginning. (Hernandez p.277)
FldName
Text

Field Name (in English)

Indicates the main, casual, name of the Database Field in English.
Notes: This label is an alternate name by which you can identify the field within an end-user application interface. Something readable. (Hernandez p.279)
FldEng
Text

Field Alias(es)

Indicates any other names this specific Field might be known as.
Notes: A name (or set of names) that you use for the field in very rare circumstances. This must be used if there are two occurrences of this field in the same table. (Hernandez p.281)
FldAlias
Text

Field Description

Indicates the full description of this Database Field. This should generally be a sentence or two describing what information is stored in this Field, and why it is important.
Notes: A complete interpretation of the field. Write a clear and succinct statement that accurately identifies the field and clearly states its purpose within the table. Avoid technical jargon, acronyms, abbreviations, and implementation-specific information. (Hernandez p.283)
FldDesc
Text-Long

Field Internal Notes

Indicates the any important Notes related to this Database Field. This can be important for providing documentation or other internal comments about how or why this Field was designed in this way, or where a list of potentially stored values came from.
Notes: Extra space for internal notes, often reserved for implementation-specific information, or planning in progress.
FldNotes
Text-Long

Foreign Key Table ID

If this Field is a Foreign Key pointing to another Database Table, then this is where that unique Table ID is stored. This is important for tracking data linkages through the Database Design.
( default value: -3 )
FldForeignTable
Number
Database Tables(0,11)-(0,N)

Degree of Participation: Outgoing Min

If this Field record defines a Foreign Key, then this helps indicate its degree of participation, the minimum number of this Table's records which can be related to a single record of the Foreign Table. This is important for documenting and enforcing logical limitations designed with the Database.
( default value: 1 )
FldForeignMin
Text

Degree of Participation: Outgoing Max

If this Field record defines a Foreign Key, then this helps indicate its degree of participation, the maximum number of this Table's records which can be related to a single record of the Foreign Table. This is important for documenting and enforcing logical limitations designed with the Database.
( default value: 1 )
FldForeignMax
Text

Degree of Participation: Incoming Min

If this Field record defines a Foreign Key, then this helps indicate its degree of participation, the minimum number of a Foreign Table's records which can be related to a single record of this Table. This is important for documenting and enforcing logical limitations designed with the Database.
( default value: 1 )
FldForeign2Min
Text

Degree of Participation: Incoming Max

If this Field record defines a Foreign Key, then this helps indicate its degree of participation, the maximum number of a Foreign Table's records which can be related to a single record of this Table. This is important for documenting and enforcing logical limitations designed with the Database.
( default value: 1 )
FldForeign2Max
Text

Field Values

Storing information here indicates that this Database Field can only be set to a specified range of values, separated by semi-colons. (* This field needs to be replaced by a helper table which stores each value as its own record, or perhaps preferably using the Definitions table. *)
Notes: Specifies every possible valid value for a field. You can optionally select a pre-definined value set which is common among various fields. (Hernandez p.294)
FldValues
Text-Long

Default Value

Indicates the default value for this specific Field, when a new Table record is first created.
Notes: A value that a user can into a field when a more appropriate value is not yet available, nulls not allowed. Use a default value ONLY if it is meaningful. (Hernandez p.294)
FldDefault
Text

Is Indexed

Indicates whether or not this Field is to be indexed by the Database for faster searching of this specific field. This is important for ideal Database creation.
Notes: When this project is finished, will this field be searched or sorted very very often? A database index is a data structure that improves the speed of data retrieval operations on a database table at the cost of additional writes and storage space to maintain the index data structure. (NOT Hernandez approved planning.)
Values: 0 ; 1 ( default value: 0 )
FldIsIndex
Number

MySQL Data Type

Indicates which basic MySQL type of data will be stored with this Database Field. This is important for determining how to export the database or otherwise install it to MySQL-based environments.
Notes: MySQL implementation-specific field type, needed for one-click database structure export. (NOT Hernandez approved planning.)
( default value: VARCHAR )
FldType
Text

Basic Data Type

Indicates the most basic nature of the data being stored by this Field, whether .
Notes: The most basic nature of the data that this field stores (not implementation-specific). (Hernandez p.286)
Values: Alphanumeric ; Numeric ; DateTime ( default value: Alphanumeric )
FldDataType
Text

Data Length

Indicates the total number of characters or digits that a user can enter for any stored value in this Database Field. This is important for ideal Database creation.
Notes: The total number of characters or digits that a user can enter for any given value of this field. If otherwise unimportant, this can be set to the maximum length for the best implementation-specific data type. (Hernandez p.289)
FldDataLength
Number

Data Decimal Places

If this Field's basic data type is numeric, then this denotes the number of digits to the right of the decimal point in real numbers which can be stored in this Database Field.
Notes: If this field is Numeric, this denotes the number of digits to the right of the decimal point in a real number (eg. MySQL DOUBLE). (Hernandez p.289)
( default value: 0 )
FldDataDecimals
Number

Character Support

Indicates the type of characters that a user can enter as a value for this Database Field. (* Multiple character types are currently stored as comma separated strings, but this should probably be some cleaner method. *)
Notes: The type of characters that a user can enter as a value for this field. Setting and enforcing this helps you ensure that the user cannot introduce meaningless data into the field, enhancing field-level integrity. Letters include foreign language letters. (Hernandez p.289)
Values: Letters ; Numbers ; Keyboard ; Special ( default value: ,Letters,Numbers,Keyboard,Special, )
FldCharSupport
Text

Input Mask

Specifies the manner in which a user should enter data into this field. eg. YYYY-MM-DD
Notes: Specifies the manner in which a user should enter data into this field. eg. YYYY-MM-DD (Hernandez p.290)
FldInputMask
Text

Display Format

Indicates the appearance of this Database Field's value when it is displayed on a screen or printed within a document.
Notes: The appearance of this field's value when it is displayed on a screen or printed within a document. (Hernandez p.291)
FldDisplayFormat
Text

Key Type

Indicates whether or not this Field is some kind of Key in its parent Database Table, including Foreign Keys, Primary Keys, or Alternate Keys. By default, all SurvLoop Tables will automatically generate a Unique, Primary Key if no such Field is specified by the Database Designer. (* Multiple key types are currently stored as comma separated strings, but this should probably be some cleaner method. *)
Notes: Designates this field's role within a table. (Hernandez p.292)
Values: Non ; Foreign ; Primary ; Alternate ( default value: ,Non, )
FldKeyType
Text

Key Structure

If this Database Field is a Primary Key, then this indicates whether it is acting as a simple (single-field) primary key or as part of a composite (multi-field) primary key.
Notes: Denotes whether this field designated as a primary key is acting as a simple (single-field) primary key or as part of a composite (multi-field) primary key. (Hernandez p.292)
Values: Simple ; Composite
FldKeyStruct
Text

Edit Rule

Indicates whether or not a Field's data can or must be store at the Table record's creation, and whether or not it can it be edited by Users later.
Notes: Enter Now - user must enter a value when creating a new table record; Enter Later - user has the option of entering value when creating table record; Edits Allowed - user can edit the value at any time; Edits Not Allowed - after entering a value, user cannot edit it at any time; (Hernandez p.295)
Values: NowAllowed ; LateAllow ; NowNot ; LateNot ; NotDeterm ( default value: LateAllow )
FldEditRule
Text

Has Unique Value

Indicates whether this Database Field's values are unique across all Table records.
Notes: Indicates whether this field's values are unique (always for primary keys, rarely for everything else). (Hernandez p.292)
Values: 0 ; 1 ( default value: 0 )
FldUnique
Number

Has NULL Support

Indicates whether or not this Database Field accepts NULL values to be stored, which should represent missing or unknown information.
Notes: Whether this field accepts null values (not allowed for primary keys). Null values should represent missing or unknown values. (Hernandez p.293)
Values: 0 ; 1 ( default value: 1 )
FldNullSupport
Number

Values Entered By

Indicates whether a User or the System enter information into this Database Field.
Notes: The source of this field's value. Either a user will enter values into the field manually or a database application program will enter them automatically. (Hernandez p.293)
Values: User ; System ( default value: User )
FldValuesEnteredBy
Text

Is Required

Indicates whether or not a User is required to enter a value for this Database Field.
Notes: Whether a user is required to enter a value for this field. No for most non-primary-key fields. (Hernandez p.294)
Values: 0 ; 1 ( default value: 0 )
FldRequired
Number

Compare Same Field Value

Indicates the types of comparisons can be applied to a given field value when retrieving information from the same Field in other Table records. Currently stored as the multiple of various prime numbers which represent the specific comparisons allowed.
Notes: The types of comparisons a user/system can apply to a given field value when retrieving information from the field. (Hernandez p.296)
( default value: 1 )
FldCompareSame
Number

Compare Other Field Value

Indicates the types of comparisons can be applied to a given field value when retrieving information from the other Fields in other Table records. Currently stored as the multiple of various prime numbers which represent the specific comparisons allowed.
Notes: The types of comparisons a user/system can apply to a given field value when retrieving information from the field. (Hernandez p.296)
( default value: 1 )
FldCompareOther
Number

Compare Other Values

Indicates the types of comparisons can be applied to a given field value when retrieving information from the other values generally. Currently stored as the multiple of various prime numbers which represent the specific comparisons allowed.
Notes: The types of comparisons a user/system can apply to a given field value when retrieving information from the field. (Hernandez p.296)
( default value: 1 )
FldCompareValue
Number

Operate with Same Field Value

Indicates the types of operations which can be applied to a given Field value with the same Field in other Table records. Currently stored as the multiple of various prime numbers which represent the specific comparisons allowed.
Notes: Specifies the types of operations that a user can perform on the values. (Hernandez p.298)
( default value: 1 )
FldOperateSame
Number

Operate with Other Field Value

Indicates the types of operations which can be applied to a given Field value with the other Fields in other Table records. Currently stored as the multiple of various prime numbers which represent the specific comparisons allowed.
Notes: Specifies the types of operations that a user can perform on the values. (Hernandez p.298)
( default value: 1 )
FldOperateOther
Number

Operate with Other Value

Indicates the types of operations which can be applied to a given Field value with the other values generally. Currently stored as the multiple of various prime numbers which represent the specific comparisons allowed.
Notes: Specifies the types of operations that a user can perform on the values. (Hernandez p.298)
( default value: 1 )
FldOperateValue
Number

Field Options

Indicates the multiple of various prime numbers which mark other specific qualities of this Field.
Notes: %3 Field Is Auto-Managed by SurvLoop; | %1 XML Public Data; %7 XML Private Data; %11 XML Sensitive Data; %13 XML Internal Use Data;
( default value: 1 )
FldOpts
Number
Definitions
(Def)

Definitions

Includes lists of possible ranges of values for various data Fields throughout the database, and other system settings. This is important for providing dynamic storage for key system terminology which may infrequently change.
2 Tables with Foreign Keys
Group: Databases
Type: Data
7 Fields Total
1 Outgoing Key
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Definitions Unique ID

DefID
Number, Indexed, Primary Key

Definition Database ID

Indicates the unique Database ID number which this Definition belongs to.
DefDatabase
Number
Databases(11,11)-(0,N)

Set

This is a label for a set of system information which may need to be periodically changed by a system Administrator without the technical assistance of a programmer. Important for categorizing these dynamically stored system definitions.
Notes: Potential for multiple languages in the future?
Values: SurvLoop Definition Types (Definitions) ( default value: Value Ranges )
DefSet
Text

Subset

This is a label for a subset of system information which may need to be periodically changed by a system Administrator without the technical assistance of a programmer. Important for categorizing these dynamically stored system Definitions.
DefSubset
Text

Sorting Order in Subset

Indicates the indexed order of this Definition, relative to other Definitions within their Set and Subset of categorization. This is particularly important for providing order to the range of potential response values presented to Users.
( default value: 0 )
DefOrder
Number

Is Active

Indicates whether or not this Database Definition is currently active in the system. This is important for disabling Definitions from the system without deleting them, either temporarily or permanently.
Values: 0 ; 1 ( default value: 1 )
DefIsActive
Number

Value

The dynamically stored text or value which Administrators can manage with a programmer. In the case of Value Ranges, this value is what a User will see, but the unique Definition ID will be stored as the User's response.
DefValue
Text

Description

The optional descriptive notes providing a deeper explanation of this specific Definition. For Value Ranges, this could also provide references and sources regarding the decision to include this Definition. Important for internal documentation and possibly User education.
DefDescription
Text-Long
BusRules
(Rule)

Business Rules

Each record represents one Business Rule which specifies certain requirements to be maintained in the Database. Implementing the Rules defined here is important for maintaining data integrity.
Group: Databases
Type: Data
12 Fields Total
1 Outgoing Key
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

BusRules Unique ID

RuleID
Number, Indexed, Primary Key

Rule Database ID

Indicates the unique Database ID number which this Business Rule belongs to.
RuleDatabase
Number
Databases(11,11)-(0,N)

Rule Statement

Indicates the text of the business rule itself, clear, succinct, and convey the required constraints in simple English.
Notes: The text of the business rule itself, clear, succinct, and convey the required constraints. (Hernandez p.409)
RuleStatement
Text-Long

Rule Constraint

Indicates how the constraint specifically applies to the Database Tables and Fields, intended for a more technical audience.
Notes: A brief explanation of how the constraint applies to the tables and fields. (Hernandez p.409)
RuleConstraint
Text-Long

Rule Tables

Indicates a comma-separated list of unique Table IDs which this Rule will affect. (* This should be moved to a different data structure. *)
Notes: Designate the name of the field(s) and table(s) the rule will affect. (Hernandez p.410)
( default value: , )
RuleTables
Text

Rule Fields

Indicates a comma-separated list of unique Table IDs which this Rule will affect. (* This should be moved to a different data structure. *)
Notes: Designate the name of the field(s) and table(s) the rule will affect. (Hernandez p.410)
( default value: , )
RuleFields
Text

Is Implemented In Application

Indicates whether or not this Business Rule can be directly implemented within the logical design of the database (Database-Oriented). Application-Oriented Rules will have to be implemented with custom coding, outside the scope of SurvLoop's automation.
Notes: Database-Oriented: impose constraints that you can establish within the logical design of the database; Application-Oriented: impose constraints that you cannot establish within the logical design of the database. (Hernandez p.397)
Values: 0 ; 1 ( default value: 1 )
RuleIsAppOrient
Number

Is Relationship-Specific

Indicates whether or not this Business Rule provides additional specifications to a Database Field in isolation, or to a Relationship multiple Fields or Tables.
Notes: Field-Specific and Relationship-Specific rules can be established in field specifications, but more details may be provided here if needed. (Hernandez p.399)
Values: 0 ; 1 ( default value: 1 )
RuleIsRelation
Number

Test Rule On

Indicates when the imposed Rule should be tested, whether upon inserting a new Table record, deleting a record, or updating a Field's value.
Notes: The constraint imposed should be tested when you attempt to perform: Inserting a record into the table or an entry into a field, Deleting a record from the table or a value within a field, or Updating a field's value. (Hernandez p.408)
Values: Insert ; Update ; Delete ( default value: Insert )
RuleTestOn
Text

Physical Elements Affected

Indicates the multiple of various prime numbers which represent physical data specifications related to this Rule, including Data Type, Length, Decimal Places, Character Support, Input Mask, and Display Format.
Notes: %2 Data Type, %3 Length, %5 Decimal Places, %7 Character Support, %11 Input Mask, %13 Display Format
( default value: 1 )
RulePhys
Number

Logical Elements Affected

Indicates the multiple of various prime numbers which represent logical data specifications related to this Rule, including Key Type, Key Structure, Uniqueness, Null Support, Values Entered By, Required Value, Default Value, Range of Values, Comparisons Allowed, Operations Allowed, and Edit Rule.
Notes: %2 Key Type, %3 Key Structure, %5 Uniqueness, %7 Null Support, %11 Values Entered By, %13 Required Value, %17 Default Value, %19 Range of Values, %23 Comparisons Allowed, %29 Operations Allowed, %31 Edit Rule
( default value: 1 )
RuleLogic
Number

Relationship Characteristics Affected

Indicates the multiple of various prime numbers which represent data relation specifications related to this Rule, including Deletion Rule, Type of Participation, Degree of Participation.
Notes: %2 Deletion Rule, %3 Type of Participation, %5 Degree of Participation
( default value: 1 )
RuleRel
Number

Action Taken

Indicates what actions have been taken, or need to be taken, to implement and enforce this Business Rule.
Notes: Indicate the modifications made to field specifications, etc, as clearly as possible. (Hernandez p.)
RuleAction
Text-Long
Tree
(Tree)

Trees

Each Tree represents one collection of Nodes which one specific survey process, page of content, navigation menu, etc. Nodes are connected to each other to form a branching Tree which define all the details.
13 Tables with Foreign Keys
Group: Trees
Type: Data
11 Fields Total
6 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Tree Unique ID

TreeID
Number, Indexed, Primary Key

Primary Database ID

Indicates the unique Database ID number which this User Experience primarily belongs to.
TreeDatabase
Number
Databases(11,11)-(0,N)

Tree Owner User ID

Indicates the unique User ID number belonging to the owner of this User Experience or Tree.
TreeUser
Number
Users(0,11)-(0,N)

Tree Type

Indicates whether this Tree (collection of Nodes) indeed maps out a User Experience, or if it provides a map of the Database Design for the creating XML documents automatically-generated by SurvLoop.
Values: Primary Public ; Primary Public XML ( default value: Primary Public )
TreeType
Text

Tree Name

Indicates the most succinct and clear name internally used to refer to this specific Tree.
TreeName
Text

Tree Description

Documents a longer description of the purpose, use, and importance of this specific Tree.
TreeDesc
Text-Long

Tree URL

Indicates the URL for the starting page of this Tree.
TreeSlug
Text

Root Node ID

Indicates the unique Experience Node ID of the first, Root Node of this entire User Experience. All other Nodes within this Tree are descendants of the Root Node.
TreeRoot
Number
Tree Nodes(11,11)-(0,11)

First Page Node ID

Stores a cache of the unique Experience Node ID of this Tree's first Node which is a Page. This helps to quickly identify the URL of the first Page the user will experience.
TreeFirstPage
Number
Tree Nodes(11,11)-(0,11)

Last Page Node ID

Stores a cache of the unique Experience Node ID of this Tree's last Node which is a Page. This helps to quickly identify the URL of the final Page the user will experience.
TreeLastPage
Number
Tree Nodes(11,11)-(0,11)

Tree Core Data Table

Indicates the unique Table ID which acts as the backbone for all data collected throughout this entire Tree.
TreeCoreTable
Number
Database Tables(0,11)-(0,N)

Tree Options

Indicates the multiple of various prime numbers which mark specific other qualities of this Node.
Notes: %3 Admin-Only; %5 Tree That Is One Big SurvLoop; %7 Area Home Page (for Public, Admin, or Volun); %11 Record Edits Not Allowed (except by Admins); %13 Report for Survey (linked and shares core table); %17 Volunteers Access (& Admin); %19 Contact Form (Auto Page); %23 Page Is Skinny; %29 Page Not [Yet] Simple Enough To Be Cached; %31 Search Bar Results Page (for Public, Admin, or Volun); %37 Survey Navigation Menu Bottom; %41 Partners Member Access; %43 Staff Access; %47 Uses Public ID#; %53 Has Page Form; %59 Survey Navigation Menu Top; %61 Survey Progress Line
( default value: 1 )
TreeOpts
Number
Node
(Node)

Tree Nodes

Each record represents one Node in the branching Tree, defining the critical details of each survey, page, etc. Each Node could represent the start of a new branch of the Tree, a new question asked of a User, or a new page which will ask multiple questions.
13 Tables with Foreign Keys
Group: Trees
Type: Data
17 Fields Total
2 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Node Unique ID

NodeID
Number, Indexed, Primary Key

Node Tree ID

Indicates the unique Tree ID number which this Tree Node belongs to.
NodeTree
Number
Trees(11,11)-(0,N)

Parent Node ID

Indicates the unique Experience Node ID of this Node's parent Node. This linkage is the thread which connect all Nodes as branches of the entire Experience Tree.
( default value: -3 )
NodeParentID
Number
Tree Nodes(0,N)-(0,N)

Sibling Node Sorting Order

Indicates the indexed order of this Experience Node, relative to sibling Nodes which share the same Parent Node. This is how the branches of the entire Experience Tree stay sorted.
( default value: 0 )
NodeParentOrder
Number

Node Type

Indicates whether this Experience Node represents either a branch (for navigation), a specific question to the User, a collection of questions as one page, a loop of many pages, or a specific manipulation of previously stored data. Question Nodes include Instructions, Radio, Checkbox, Drop Down, Text, Long Text, Text:Number, Email, Password, Date, Date Picker, Date Time, Time, Gender, Gender Not Sure, Feet Inches, U.S. States, Hidden Field, Spambot Honey Pot, Uploads, and Other/Custom. Nodes which are part of Trees which map XML output are of a separate XML Type.
Values: Page ; Branch Title ; Loop Root ; Data Manip: New ; Data Manip: Update ; Data Manip: Wrap ; Instructions ; Radio ; Checkbox ; Drop Down ; Text ; Long Text ; Text:Number ; Email ; Password ; Date ; Date Picker ; Date Time ; Time ; Gender ; Gender Not Sure ; Feet Inches ; U.S. States ; Hidden Field ; Spambot Honey Pot ; Uploads ; Other/Custom ; XML
NodeType
Text

Node Question/Prompt To User

Indicates the language used to prompt a User Response. For special Node Types like branches, pages, and loop roots, this field stores a title or name. For XML Nodes, this fields stores the name of the Database Table included in the mapped.
NodePromptText
Text-Long

Node Side-Notes To User

Indicates the language used to prompt a User Response. For special Node Types like branches, pages, and loop roots, this field stores the Node's URL slug. For XML Nodes, this fields stores the unique Table ID of the Database Table included in the mapped.
NodePromptNotes
Text-Long

Extra HTML After Node Response

Stores any extra HTML, CSS, or Javascript which a Database Designer wants to appear directly after the User's opportunity to Respond to a Node's Prompt.
NodePromptAfter
Text-Long

Internal Notes

Stores any internal notes which Experience Designers want to share.
NodeInternalNotes
Text-Long

User Response Set

Indicates the range of options the User will be provided for Node which ask some kind of multiple-choice question. This includes "Definition::{DefSubset}", "LoopItems::{LoopName}", or "[Set:{TableName};;HideIf:1]", but most Question Nodes have Response Options stored in the Node Responses table.
NodeResponseSet
Text

Default Response Value

Indicates if any of the Response options should be pre-selected when this Node loads for the User.
NodeDefault
Text

Node Data Branch

Indicates the name of the Database Table as a point of reference for this Node's data interactions, and all of its descendants.
Notes: Yes, this should be changed to a Foreign Key to the Table ID.
NodeDataBranch
Text

Node Data Field

Indicates the Database Table and Field where the User's Response will actually be stored.
Notes: Yes, this should be changed to a Foreign Key to the Field ID.
NodeDataStore
Text

Response Text Suggest

Indicates an optional setting to suggest a response or instruction within this Node's open-ended form field.
NodeTextSuggest
Text

Response Character Limit

Indicates the maximum number of characters a User may enter in Response to this Node's prompt.
( default value: 0 )
NodeCharLimit
Number

Node Likes

For some systems, this indicates how many Users responded to this Node with "a like".
( default value: 0 )
NodeLikes
Number

Node Dislikes

For some systems, this indicates how many Users responded to this Node with "a dislike".
( default value: 0 )
NodeDislikes
Number

Node Options

Indicates the multiple of various prime numbers which mark specific other qualities of this Node.
Notes: For XML Nodes... %5 Include members with parent, without table wrap; %7 Min 1 Record; %11 Max 1 Record; | For Other Nodes... %2 Customize Layout; %13 'Required' Displayed On Separate Line; %29 Exit Page; %31 Show Word Count; %37 Wrap In Jumbotron Style; %41 Echo Response Edits To Div; %43 Toggle Child Nodes On Click; %47 Limit Word Count; %53 Dropdown Tagger; %59 Hide Progress Bar; %61 Responses In Columns; %67 Skinny Content Width; %71 Content Block Background; %73 Leave Existing Rows' Records; %79 After Response Selected, Hide Other Options; %83 Show After Pressing Info Button; %89 Wrap in Card Element; %97 Defer Loading of Node Contents
( default value: 1 )
NodeOpts
Number
NodeResponses
(NodeRes)

Node Responses

Each record represents one Response presented to the User when prompted by a specific Node.
Group: Trees
Type: Subset
6 Fields Total
1 Outgoing Key
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

NodeResponses Unique ID

NodeResID
Number, Indexed, Primary Key

Response Node ID

Indicates the unique Experience Node ID number which this Node Response belongs to.
NodeResNode
Number
Tree Nodes(11,11)-(0,N)

Response Sorting Order

Indicates the indexed order of this Node Response, relative to other Response options for this Experience Node.
( default value: 0 )
NodeResOrd
Number

Response Description

Describes this Node Response option clearly in English for the User.
NodeResEng
Text-Long

Response Stored Value

Indicates how a User selection of this Node Response option should be stored in the Database.
NodeResValue
Text

Show Child Node If Selected

Indicates whether or not child Nodes should be revealed to the User upon selecting this specific Node Response option.
( default value: 0 )
NodeResShowKids
Number

Response Is Mutually Exclusive

Indicates whether or not this response option is mutually exclusive with all the other responses to this question (Node).
( default value: 0 )
NodeResMutEx
Number
Conditions
(Cond)

Conditions

Each record represents one specific Condition used to filter Database submissions. These are important for determining which Nodes to include during a User's Experience, and which finished submissions to include in public queries.
2 Tables with Foreign Keys
Group: Trees
Type: Data
9 Fields Total
4 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Conditions Unique ID

CondID
Number, Indexed, Primary Key

Condition Database ID

Indicates the unique Database ID number which this Condition can be applied to.
CondDatabase
Number
Databases(11,11)-(0,N)

Condition Tag/Name

Indicates the short name, like a hashtag on social media, which is used both internally and publicly to easily identify this Condition/Filter.
CondTag
Text

Condition Description

Describes this Condition/Filter in English, as accurately and succinctly as possible, for both internal and public use.
CondDesc
Text-Long

Condition Operator

Indicates what type of testing to do as part of applying this Data Condition. This includes checking for User Responses within a specified range of values ( "{" ), outside a specified range of values ( "}" ), checking the number of records a Database Table has ( "EXISTS>" ), or "CUSTOM".
( default value: { )
CondOperator
Text

Condition Operator Details

Indicates qualifying details to further specify this operator's requirements for this Condition. For "EXISTS>" Conditions, this stores the maximum number of Table records which can exist while passing this Condition as FALSE.
CondOperDeet
Text

Database Field ID

Indicates the unique Field ID number for the data being tested in this Database Condition.
CondField
Number
Database Fields(0,N)-(0,N)

Database Table ID

Indicates the unique Table ID number for the data being tested in this Database Condition.
CondTable
Number
Database Tables(0,N)-(0,N)

Data Loop ID

Indicates the unique Data Loop ID number for the data being tested in this Database Condition.
CondLoop
Number
Data Loops(0,N)-(0,N)

Condition Options

Indicates the multiple of various prime numbers which mark any other specific qualities of this Condition.
Notes: %2 For Public Use In Filter Defaults; %3 Is Linked With Article(s);
( default value: 1 )
CondOpts
Number
ConditionsVals
(CondVal)

Condition Values

Each record represents one Value to be compared with a User's Response when testing a specific Condition. This is important for comparing among a range of values.
Group: Trees
Type: Subset
2 Fields Total
1 Outgoing Key
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

ConditionsVals Unique ID

CondValID
Number, Indexed, Primary Key

Value Condition ID

Indicates the unique Condition ID number which this Value option relates to.
CondValCondID
Number
Conditions(11,11)-(0,N)

Value Description

Indicates the actual User Response Value, which would be stored in the Database, associated with the Condition related to this record.
CondValValue
Text
ConditionsNodes
(CondNode)

Condition Nodes

Each record represents a linkage between one Node or one Data Loop within this Experience.
1 Table with Foreign Key
Group: Trees
Type: Linking
3 Fields Total
3 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

ConditionsNodes Unique ID

CondNodeID
Number, Indexed, Primary Key

Condition ID

Indicates the unique Condition ID number of the Condition being applied to an Experience Node or a Data Loop.
CondNodeCondID
Number
Conditions(0,N)-(0,N)

Experience Node ID

Indicates the unique Experience Node ID number which this Condition has been applied to.
CondNodeNodeID
Number
Condition Nodes(0,N)-(0,N)

Data Loop ID

Indicates the unique Data Loop ID number which this Condition has been applied to.
CondNodeLoopID
Number
Data Loops(0,N)-(0,N)
ConditionsArticles
(Article)

Condition Articles

Each record represents one Article which provides more information regarding Experience submissions which meet a Condition's requirements. This is important for provident automated, educational information to Users and the public.
1 Table with Foreign Key
Group: Trees
Type: Subset
3 Fields Total
1 Outgoing Key
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

ConditionsArticles Unique ID

ArticleID
Number, Indexed, Primary Key

Article Condition ID

Indicates the unique Condition ID number of the Condition being associated with complementary information.
ArticleCondID
Number
Condition Articles(0,N)-(0,N)

Article URL

Indicates the URL of an Article which provides more information for Users with completed submissions meeting this related Condition/Filter.
ArticleURL
Text

Article Title

Indicates an appropriate title for an Article which provides more information for Users with completed submissions meeting this related Condition/Filter.
ArticleTitle
Text
DataLoop
(DataLoop)

Data Loops

Each record represents one Data Loop's full details. This is important for automating data relations for related Experiences.
2 Tables with Foreign Keys
Group: Trees
Type: Data
12 Fields Total
2 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

DataLoop Unique ID

DataLoopID
Number, Indexed, Primary Key

Data Loop Experience ID

Indicates the unique Experience ID number of the User Experience for which this Data Loop is required.
DataLoopTree
Number
Trees(11,11)-(0,N)

Root Node ID

Indicates the unique Node ID number of this Data Loop's Root Node. All of the descendants of this Data Loop's Root will be repeated until the User wants to continue past it, or Loop's constraints are exceeded.
DataLoopRoot
Number
Tree Nodes(11,11)-(0,N)

Plural Name For Items In Loop

Indicates the way to describe multiple Items in this Data Loop (eg. "Witnesses"). This is also the primary name for this Data Loop, so its value should be unique within each Database.
DataLoopPlural
Text

Singular Name For Items In Loop

Indicates the way to describe multiple Items in this Data Loop (eg. "Witness").
DataLoopSingular
Text

Data Loop Core Table

Indicates the name of the Database Table whose records will either be looped through, or created during this Data Loop.
Notes: Yes, this should be changed to a Foreign Key to the Table ID.
DataLoopTable
Text

Data Sort Field

Indicates the full Database Field name ( "{TableAbbr}{FldName}" ) to be used for sorting Table records as Data Loop Items.
Notes: Yes, this should be changed to a Foreign Key to the Field ID.
DataLoopSortFld
Text

Loop Completed Field

Indicates the full Database Table and Field address ( "{TableName}:{TableAbbr}{FldName}" ) to be checked signifying that the User has successfully completed the Data Loop for a given Item.
Notes: Yes, this should be changed to a Foreign Key to the Field ID.
DataLoopDoneFld
Text

Maximum Loop Items

Indicates how many Data Loop Items/Records the User is allowed add.
( default value: 0 )
DataLoopMaxLimit
Number

Warn Item Maximum

Indicates how many Data Loop Items/Records will trigger a warning to the User that they are approaching the maximum limit.
( default value: 0 )
DataLoopWarnLimit
Number

Minimum Loop Items

Indicates how many Data Loop Items/Records the User must add.
( default value: 0 )
DataLoopMinLimit
Number

Is Step-Loop

Indicates whether or not this Data Loop operates as a Step-Loop, meaning Table records are added to the Database before this Data Loops steps the User through adding information for one preexisting Loop Item at a time. Otherwise, Data Loops behave so that Users to can add Loop Items until the specified limits are reached.
Values: 0 ; 1 ( default value: 0 )
DataLoopIsStep
Number

Data Auto-Generates

If this is not a Step-Loop, this indicates whether or not this Data Loop should automatically create new Database Table records (and child data structures) when a User clicks to add another Loop Item.
Values: 0 ; 1 ( default value: 1 )
DataLoopAutoGen
Number
DataSubsets
(DataSub)

Data Subset Tables

Each record represents one linkage between one Database Table and a Subset Table which pulls in one related secondary record of detailed information. This is important for automating data relations for related Experiences.
Group: Trees
Type: Linking
6 Fields Total
1 Outgoing Key
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

DataSubsets Unique ID

DataSubID
Number, Indexed, Primary Key

Data Link Experience ID

Indicates the unique Experience ID number of the User Experience for which this Data Subset is required.
DataSubTree
Number
Trees(11,11)-(0,N)

Primary Table

Indicates the name of the primary Database Table in this Data Subset relationship, included in this User Experience. This Table is upstream of the secondary Table when loading User Data.
Notes: Yes, this should be changed to a Foreign Key to the Table ID.
DataSubTbl
Text

Primary Table Linking Field

When appropriate, this indicates the full name ( "{TableAbbr}{FldName}" ) of the primary Table's Field to find related secondary Table records in the User's Data. This Field must be a Foreign Key pointing to the secondary Table.
Notes: Yes, this should be changed to a Foreign Key to the Field ID.
DataSubTblLnk
Text

Secondary Table

Indicates the name of the secondary Database Table in this Data Subset relationship, included in this User Experience. This Table is downstream of the primary Table when loading User Data.
Notes: Yes, this should be changed to a Foreign Key to the Table ID.
DataSubSubTbl
Text

Secondary Table Linking Field

When appropriate, this indicates the full name ( "{TableAbbr}{FldName}" ) of the secondary Table's Field to find related secondary Table records in the User's Data. This Field must be a Foreign Key pointing to the primary Table.
Notes: Yes, this should be changed to a Foreign Key to the Field ID.
DataSubSubLnk
Text

Secondary Records Auto-Generated

Indicates whether or not this Data Subset should enforce the auto-creation of secondary Table records, whenever the related primary Table record exists.
Values: 0 ; 1 ( default value: 0 )
DataSubAutoGen
Number
DataHelpers
(DataHelp)

Data Helper Tables

Each record represents one linkage between one Database Table and a Helper Table which can store multiple checkbox responses or relate many secondary records to the primary. This is important for automating data relations for related Experiences.
Group: Trees
Type: Linking
5 Fields Total
1 Outgoing Key
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

DataHelpers Unique ID

DataHelpID
Number, Indexed, Primary Key

Data Link Experience ID

Indicates the unique Experience ID number of the User Experience for which this Data Helper is required.
DataHelpTree
Number
Trees(11,11)-(0,N)

Primary Table

Indicates the name of the primary Database Table in this Data Helper relationship, included in this User Experience. This Table is upstream of the secondary Table when loading User Data.
Notes: Yes, this should be changed to a Foreign Key to the Table ID.
DataHelpParentTable
Text

Secondary Table

Indicates the name of the primary Database Table in this Data Helper relationship, included in this User Experience. This Table is downstream of the primary Table when loading User Data.
Notes: Yes, this should be changed to a Foreign Key to the Table ID.
DataHelpTable
Text

Secondary Foreign Key

Indicates the full name ( "{TableAbbr}{FldName}" ) of the secondary Table's Field to find related secondary Table records in the User's Data. This Field must be a Foreign Key pointing to the secondary Table.
Notes: Yes, this should be changed to a Foreign Key to the Field ID.
DataHelpKeyField
Text

Secondary Storage Field

When appropriate, this indicates the full name ( "{TableAbbr}{FldName}" ) of the secondary Table's Field which stores multiple checkbox Response Values from the User and associates them with the primary Database Table.
Notes: Yes, this should be changed to a Foreign Key to the Field ID.
DataHelpValueField
Text
DataLinks
(DataLink)

Data Linkage Tables

Each record represents one linkage between one Database Table and a second Table which don't require a hierarchical relationship. This is important for automating data relations for related Experiences.
Group: Trees
Type: Linking
2 Fields Total
2 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

DataLinks Unique ID

DataLinkID
Number, Indexed, Primary Key

Data Link Experience ID

Indicates the unique Experience ID number of the User Experience for which this Data Link is required.
DataLinkTree
Number
Trees(11,11)-(0,N)

Database Linkage Table

Indicates the unique Table ID number for the many-to-many linkage table to be included when a User's Data is loaded for this User Experience.
DataLinkTable
Number
Database Tables(11,11)-(0,N)
Images
(Img)

Gallery Images

Each record represents one item in the Media Galleries managed by SurvLoop.
Group: Trees
Type: Data
13 Fields Total
3 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Images Unique ID

ImgID
Number, Indexed, Primary Key

Database ID

Indicates the unique Database ID number which owns this media item.
ImgDatabaseID
Number
Databases(1,1)-(0,N)

User ID

Indicates the unique User ID number who uploaded or owns this media item.
ImgUserID
Number
Users(0,1)-(0,N)

Original Filename

Indicates the original filename, as it was uploaded.
ImgFileOrig
Text

Stored Filename

Indicates the filename as it was actually stored here on the server.
ImgFileLoc
Text

Full File Location

Indicates the full path where this media file is actually stored here on the server (relative to the system app's root).
ImgFullFilename
Text

Media Title

Indicates the title of this uploaded media, or a concise description of it. This is important as a label used internally throughout the system.
ImgTitle
Text

Media Credit (Legal)

Indicates any attribution required or appropriate to be shared alongside this media item.
ImgCredit
Text

Media Credit URL (Legal)

Indicates an optional URL link for any attribution required or appropriate to be shared alongside this media item.
ImgCreditUrl
Text

Node ID

Indicates the unique Node ID number used to upload this media item.
ImgNodeID
Number
Tree Nodes(0,1)-(0,N)

Media Type

Indicates which allowed type of media upload this record tracks.
Values: jpg ; png ; gif
ImgType
Text

Media File Size

Indicates this media file's size in bytes here on the server.
ImgFileSize
Number

Media Width

Indicates the default width of this media item.
ImgWidth
Number

Media Height

Indicates the default height of this media item.
ImgHeight
Number
Uploads
(Up)

Uploads

Each record stores details about a file uploaded by a user, especially with any survey process.
Group: Trees
Type: Data
13 Fields Total
3 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Uploads Unique ID

UpID
Number, Indexed, Primary Key

Tree ID

Indicates the unique Tree ID number which this Upload belongs to. This is important to track the journey to this upload.
UpTreeID
Number
Trees(1,1)-(0,N)

Tree Node ID

Indicates the unique Node ID number (within the Tree) from which this file was uploaded. This is potentially important for tracking exactly when the user uploaded this.
UpNodeID
Number

Core Record ID

Indicates the unique ID number associated the Core Record for whichever Tree this Upload belongs to. This is important to track the journey to this upload.
UpCoreID
Number

Upload Type

Indicates the type of upload as defined by the unique Definition ID number from the Definitions set 'Value Ranges' and subset 'Upload Types'.

Privacy Setting

Indicates whether or not the user wants this uploaded file to be publicly published or for administrators' eyes only.
UpPrivacy
Text

Title of File

Indicates a brief name by which this file can be referenced in English.
UpTitle
Text

Description of File

Provides a longer description for this uploaded file, if needed.
UpDesc
Text-Long

Filename as Uploaded

Indicates the original filename for this upload when it got to the server.
UpUploadFile
Text

Filename as Stored

Indicates the new filename for this upload as it is stored on the server.
UpStoredFile
Text

Video Link URL

Indicates the URL of a video being "uploaded". So far, only YouTube is supported for automatically embeded previews.
UpVideoLink
Text

Video Duration

Indicates the duration of the video in seconds.
UpVideoDuration
Number

Link Field ID

Indicates the unique Database Field ID which this uploaded file is related to.
UpLinkFldID
Number
Database Fields(0,1)-(0,N)

Link Record ID

Indicates the unique Record ID from the Database Table owning the associated Field, if applicable.
UpLinkRecID
Number
SearchRecDump
(SchRecDmp)

Searchable Record Dump

Each record stores a cache of all data from a specific complex record, including English translations for Definition IDs, etc. This is very useful for running text searches across all Experience submissions.
Group: Trees
Type: Validation
3 Fields Total
1 Outgoing Key
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

SearchRecDump Unique ID

SchRecDmpID
Number, Indexed, Primary Key

Tree ID

Indicates the unique Tree ID number which this record belongs to.
SchRecDmpTreeID
Number
Trees(0,1)-(0,1)

Submission Record ID

Indicates the unique record ID number whose data is being cached here.
SchRecDmpRecID
Number

Full Record Dump

Stores a cache of all raw data from a specific submission record, including English translations for Definition IDs, etc.
SchRecDmpDump
Text-Long
DesignTweaks
(Tweak)

Design Tweaks

Represents one modification to the existing database and user experience designs in SurvLoop. Information stored here is important for tracking history of changes and success of A/B testing in the user experience. This is the Core Data Table of SurvLoop's naked installation.
1 Table with Foreign Key
Group: Session Records
Type: Data
7 Fields Total
2 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

DesignTweaks Unique ID

TweakID
Number, Indexed, Primary Key

User ID

Indicates the unique User ID number of the User owning the data stored in this record for this Experience.
TweakUserID
Number
Users(11,11)-(11,11)

Experience Node Progress

Indicates the unique Node ID number of the last Experience Node loaded during this User's Experience.
TweakSubmissionProgress
Number
Tree Nodes(11,11)-(11,11)

A/B Testing Version

Stores a complex string reflecting all A/B Testing variations in effect at the time of this User's Experience of this Node.
TweakVersionAB
Text

IP Address

^
Encrypted IP address of the current user.
TweakIPaddy
Text

Tree Version Number

^
Stores the current version number of this User Experience, important for tracking bugs.
TweakTreeVersion
Text

Unique String For Record

^
This unique string is for cases when including the record ID number is not appropriate.
TweakUniqueStr
Text

Using Mobile Device

^
Indicates whether or not the current user is interacting via a mobile deviced.
TweakIsMobile
Text
Sess
(Sess)

User Session

Each record represents one User's Session while going through an Experience. This is important for saving a User's progress if they have to complete an Experience over the course of multiple browser sessions.
3 Tables with Foreign Keys
Group: Session Records
Type: Data
10 Fields Total
6 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Sess Unique ID

SessID
Number, Indexed, Primary Key

Session User ID

Indicates the unique User ID for the Database User logged in and using this Session record.
SessUserID
Number
Users(11,11)-(0,N)

Session Experience ID

Indicates the unique Experience ID number of the User Experience which this Session record is tracking.
SessTree
Number
Trees(11,11)-(0,N)

User's Core Table Record ID

Indicates the unique Table ID number for the User's record in this Experience's Core Data Table. This is important for saving update's in the User's progress.
SessCoreID
Number
Design Tweaks(11,11)-(0,N)

Is Active

Indicates whether or not this session is currently active, or editable. This allows us to avoid permanently deleting these records valuable for audits.
Values: 0 ; 1
SessIsActive
Number

Session Current Node ID

Indicates the unique Node ID number of the last Experience Node this User loaded.
SessCurrNode
Number
Tree Nodes(11,11)-(0,N)

Just Left Loop Root ID

When appropriate, this Session data stores the unique Root Node ID for a Data Loop which has just been exited by the User.
SessLoopRootJustLeft
Number
Tree Nodes(0,11)-(0,N)

Jump From Node ID

When appropriate, this Session data stores the unique Node ID for an Experience Node the User has just used custom navigation to jump away from.
SessAfterJumpTo
Number
Tree Nodes(0,11)-(0,N)

Using Mobile Device

Indicates whether or not the User is currently using a mobile device (1 if yes).
Values: 0 ; 1
SessIsMobile
Number

Session Browser

Indicates the web browser used during this Session.
SessBrowser
Text

IP Address

Encrypted IP address of the current user.
SessIP
Text
SessLoops
(SessLoop)

Session Loops

Each record represents one User's current Data Loop Item which they are editing, as related to their current Session. This is important for saving a User's progress if they have to complete an Experience over the course of multiple browser sessions.
Group: Session Records
Type: Subset
3 Fields Total
1 Outgoing Key
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

SessLoops Unique ID

SessLoopID
Number, Indexed, Primary Key

User Session ID

Indicates the unique Session ID for the User Session whose Data Loop progress is stored in this record.
SessLoopSessID
Number
User Session(11,11)-(0,N)

Data Loop Name

Indicates the name of the Data Loop with User progress to store in this record.
Notes: Yes, this should be changed to a Foreign Key to the Data Loop ID.
SessLoopName
Text

Data Loop Item ID

Indicates the unique ID number of the Data Loop Item which the User was last working on.
SessLoopItemID
Number
NodeSavesPage
(PageSave)

Page Saves

Each record represents one timestamp of a User's submission of a specific Page Node during a specific Session. This is important for quickly checking or reviewing the progress of Users through an Experience.
Group: Session Records
Type: Data
3 Fields Total
2 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

NodeSavesPage Unique ID

PageSaveID
Number, Indexed, Primary Key

User Session ID

Indicates the unique Session ID for the User Session whose Page Node progress is stored in this record.
PageSaveSession
Number
User Session(11,11)-(0,N)

Page Node ID

Indicates the unique Node ID for the Experience Page Node this Session has loaded.
PageSaveNode
Number
Tree Nodes(11,11)-(0,N)

Data Loop Item ID

Indicates the unique ID number of the Data Loop Item which the User was working on for this Page Node.
PageSaveLoopItemID
Number
NodeSaves
(NodeSave)

Node Saves

Each record represents one User's Response to a specific Node during a specific Session. Among other quality control, this is important for comparing the efficacy of various A/B testing in the user experience.
Group: Session Records
Type: Data
6 Fields Total
2 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

NodeSaves Unique ID

NodeSaveID
Number, Indexed, Primary Key

User Session ID

Indicates the unique Session ID for the User Session whose Node response is stored in this record.
NodeSaveSession
Number
User Session(11,11)-(0,N)

Data Loop Item ID

Indicates the unique ID number of the Data Loop Item which the User was working on for this Node Response.
NodeSaveLoopItemID
Number

Save Node ID

Indicates the unique Node ID for the Experience Node whose User response is stored in this record.
NodeSaveNode
Number
Tree Nodes(11,11)-(0,N)

A/B Testing Version

Stores a complex string reflecting all A/B Testing variations in effect at the time of this User's Experience of this Node.
NodeSaveVersionAB
Text

Storage Data Field

Indicates the full Database Table and Field address ( "{TableName}:{TableAbbr}{FldName}" ) where this Node has decided to store the User's Response.
Notes: Yes, this should be changed to a Foreign Key to the Field ID.
NodeSaveTblFld
Text

User Response

Indicates the stored User's Response Value, or a dump of related information.
NodeSaveNewVal
Text-Long
SessEmojis
(SessEmo)

Session Emojis

Each record stores one tag of one submission, by one user. This enables users to interact and provide feedback on completed Experience submissions, and to prevent users from tagging more than once.
Group: Session Records
Type: Linking
4 Fields Total
3 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

SessEmojis Unique ID

SessEmoID
Number, Indexed, Primary Key

User ID

Indicates the unique User ID number whose interactions are being logged here. Important for ensuring that one User cannot tag someone's completed submission more than once.
SessEmoUserID
Number
Users(0,1)-(0,N)

Tree ID

Indicates the unique Tree ID number that the record being tagged belongs to. Vital for knowing which table the record ID refers to.
SessEmoTreeID
Number
Trees(1,1)-(0,N)

Submission Record ID

Indicates the unique record ID number which is being tagged with this row.
SessEmoRecID
Number

Tag Definition ID

Indicates the unique Definition ID number belonging to the specific tag or interaction being logged in this row.
SessEmoDefID
Number
Definitions(1,1)-(0,N)
SessSite
(SiteSess)

Site Session

Each record represents one User's Site Session while browsing through the whole website, not just surveys. This is important for identifying any problems in the website use flow.
1 Table with Foreign Key
Group: Session Records
Type: Data
5 Fields Total
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

SessSite Unique ID

SiteSessID
Number, Indexed, Primary Key

Session User ID

Indicates the unique User ID for the Database User logged in and using this Site Session record.
SiteSessUserID
Text-Long

IP Address

^
Encrypted IP address of the current user.
SiteSessIPaddy
Text

Using Mobile Device

Indicates whether or not the User is currently using a mobile device (1 if yes).
Values: 0 ; 1
SiteSessIsMobile
Number

Session Browser

Indicates the web browser used during this Session.
SiteSessBrowser
Text

Zoom Preference

Indicates the User's current preference of visual zoom of the page.
SiteSessZoomPref
Number
SessPage
(SessPage)

Session Page Loads

Each record represents one page load, or server-side redirect, as related to their current Session. This is important for saving a User's path through the entire website.
Group: Session Records
Type: Data
2 Fields Total
1 Outgoing Key
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

SessPage Unique ID

SessPageID
Number, Indexed, Primary Key

Session ID

Indicates the unique Session ID for the User Session who loaded this page.
SessPageSessID
Number
Site Session(1,1)-(0,N)

URL Loaded

Indicates the URL which is currently being loaded, or redirected through on the server-side.
SessPageURL
Text
Tokens
(Tok)

Tokens

Each record one security token, of various types, which can be sent to a user to confirms some action or grant some access with greater security.
Group: Users
Type: Data
5 Fields Total
2 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Tokens Unique ID

TokID
Number, Indexed, Primary Key

Token Type

Indicates which type of Token has been created and stored here.
Values: Confirm Email ; Sensitive ; MFA
TokType
Text

User ID

Indicates the unique User ID number whose token is logged in this row.
TokUserID
Number
Users(0,1)-(0,N)

Tree ID

Indicates the unique Tree ID number to which this token relates.
TokTreeID
Number
Trees(0,1)-(0,N)

Submission Record ID

Indicates the unique record ID number of the completed submission to which this Token relates.
TokCoreID
Number

Generated Token

Indicates the randomly generated string which is stored as a Token for a User's specific interaction with the database.
TokTokToken
Text
UsersRoles
(RoleUser)

User Roles

Each record represents one linkage between a Laravel system User and a User Role as defined by it's unique ID in the Definitions table.
Group: Users
Type: Linking
2 Fields Total
1 Outgoing Key
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

UsersRoles Unique ID

RoleUserID
Number, Indexed, Primary Key

User ID

Indicates the unique User ID related to the User being granted permissions in this record.
RoleUserUID
Number
Users(0,N)-(0,N)

Role ID

Indicates the unique Definition ID related to a User Role being granted in this record.
RoleUserRID
Number
Users
(User)

Users

This represents the Laravel Users table, but will not actually be implemented by SurvLoop as part of the database installation.
12 Tables with Foreign Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Users Unique ID

UserID
Number, Indexed, Primary Key
Contact
(Cont)

Contact Form

Each record represents one complete submission of the default Contact Form.
Group: Users
Type: Data
5 Fields Total
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Contact Unique ID

ContID
Number, Indexed, Primary Key

Contact Type

Indicates which type of contact the site visitor is making with us.
ContType
Text

Flag

Indicates the current internal status of this Contact submission, important for organizing contact records which need attention by system administrators.
Values: Unread ; Read ; Trash ( default value: Unread )
ContFlag
Text

Email Address

Indicates the email address of the site visitor who completed the Contact Form, important for responding to them.
ContEmail
Text

Message Subject Line

Indicates the subject line (or title) of the site visitor's Contact Form submission. This is important for more quickly identifying and classifying the nature of the request.
ContSubject
Text

Message Body

Indicates the main body of the site visitor's Contact Form submission, providing all the rest of the details of their request. This also includes a dump of any other fields which may have been built into the Contact Form.
ContBody
Text-Long
Emails
(Email)

Email Templates

Each record represents one Email Template which can be used throughout SurvLoop.
1 Table with Foreign Key
Group: Users
Type: Data
7 Fields Total
1 Outgoing Key
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Emails Unique ID

EmailID
Number, Indexed, Primary Key

Tree ID

Indicates the unique Tree ID related to the home Tree of this Email Template.
EmailTree
Number
Trees(0,1)-(0,N)

Type

Indicates the general type of Email Template being stored here.
EmailType
Text

Template Name

Indicates the name of this Email Template, as it will be referred to internally within the system.
EmailName
Text

Default Subject Line

Indicates the default subject line of emails sent out using this template.
EmailSubject
Text-Long

Default Email Body

Indicates the default main content of emails sent out using this template.
EmailBody
Text-Long

Options

Indicates any options necessary to accurately define the properties of this Email Template.
( default value: 1 )
EmailOpts
Number

Total Emails Sent

Indicates the total number of individual Emails sent using this Email Template.
( default value: 0 )
EmailTotSent
Number
Emailed
(Emailed)

Emailings

Each record represents one individual Email Template Mailing, including a copy of the auto-generated (then optionally customized) body of the sent email.
Group: Users
Type: Data
9 Fields Total
4 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Emailed Unique ID

EmailedID
Number, Indexed, Primary Key

Tree ID

Indicates the unique Tree ID which sent this email.
EmailedTree
Number
Trees(0,1)-(0,N)

Core Record ID

Indicates the unique Record ID of the core table of the Tree sending this email.
EmailedRecID
Number

Email Template ID

Indicates the unique Email Template ID which is being sent.
EmailedEmailID
Number
Email Templates(1,1)-(0,N)

Recipient Email Address

The email address this message is being sent to.
EmailedTo
Text

Recipient User ID

Indicates the unique User ID of the User this email is being sent to.
EmailedToUser
Number
Users(0,0)-(0,N)

Sender User ID

Indicates the unique User ID of the User initiating this emailing.
EmailedFromUser
Number
Users(0,1)-(0,N)

Subject Line

Indicates the subject line of this specific email, even if it is different than the default, auto-generated version from the Email Template.
EmailedSubject
Text

Email Body

Indicates the body of this specific email, even if it is different than the default, auto-generated version from the Email Template.
EmailedBody
Text-Long

Options

Indicates the options or flags stored with this emailing.
( default value: 1 )
EmailedOpts
Number
UsersActivity
(UserAct)

User Activity

Each record represents one log entry of a User's Activity, important for tracking system usage.
Group: Logs
Type: Validation
3 Fields Total
1 Outgoing Key
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

UsersActivity Unique ID

UserActID
Number, Indexed, Primary Key

User ID

Indicates the unique User ID related to the User whose actions are being logged in this record.
UserActUser
Number
Users(11,11)-(0,N)

Current URL

Indicates the URL of the system page where the User is taking the logged action.
UserActCurrPage
Text

Action Value

Indicates any other value or dump of values which may need to be logged alongside the URL for adequate documentation.
UserActVal
Text-Long
LogActions
(Log)

Log Actions

Each record represents one detailed Log entry of an Administrator's database design changes, important for keeping a history for undoing mistakes.
Group: Logs
Type: Validation
7 Fields Total
4 Outgoing Keys
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

LogActions Unique ID

LogID
Number, Indexed, Primary Key

User ID

Indicates the unique User ID related to the User whose actions are being logged in this record.
LogUser
Number
Users(11,11)-(0,N)

Log Database ID

Indicates the unique Database ID number which this Logged Action was taken on.
LogDatabase
Number
Databases(11,11)-(0,N)

Log Table ID

Indicates the unique Table ID number which this Logged Action was taken on.

Log Field ID

Indicates the unique Field ID number which this Logged Action was taken on.

Type Of Action

Indicates what type of Action on the Database Design is being Logged.
Values: New ; Edit
LogAction
Text

Old Name

Indicates the old name of this Database Table or Field, to maintain a history of such important changes.
LogOldName
Text

New Name

Indicates the new name of this Database Table or Field, to maintain a history of such important changes.
LogNewName
Text
Zips
(Zip)

Zip Codes

Each record represents one United States zip code to map it to state and counties.
Group: Lookups
Type: Linking
7 Fields Total
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Zips Unique ID

ZipID
Number, Indexed, Primary Key

Zip Code

Indicates the zip code (postal code) being mapped in this record.
ZipZip
Text

Latitude

Indicates the Zip Code\'s latitude is a geographic coordinate that specifies the north�south position of a point on the Earth\'s surface.
ZipLat
Text

Longitude

Indicates the Zip Code's longitude is a geographic coordinate that specifies the east-west position of a point on the Earth's surface.
ZipLong
Text

City

Indicates the city where this Zip Code is located.
ZipCity
Text

State

Indicates the state where this Zip Code is located.
ZipState
Text

County

Indicates the county where this Zip Code is located.
ZipCounty
Text

Country

Indicates the country where this Zip Code is located.
ZipCountry
Text
AddyGeo
(AdyGeo)

Address Geolocate

Each record represents one Address (all in one line) to map it to its latitude and longitude coordinates. This is important to reducing the number of geocoding requests sent to third parties.
Group: Lookups
Type: Data
3 Fields Total
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

AddyGeo Unique ID

AdyGeoID
Number, Indexed, Primary Key

Full Address

Indicates the full address, in one line, which is being linked with latitude and longitude coordinates.
AdyGeoAddress
Text

Latitude

Indicates the Address\'s latitude is a geographic coordinate that specifies the north�south position of a point on the Earth\'s surface.
AdyGeoLat
Text

Longitude

Indicates the Address's longitude is a geographic coordinate that specifies the east-west position of a point on the Earth's surface.
AdyGeoLong
Text
Caches
(Cach)

Caches

Each record represents one cache of content, whether HTML, JS, or CSS.
Group: Optimization
Type: Data
7 Fields Total
1 Outgoing Key
Field Name (in English), Description, Notes, Value Options
Field Name (in Database), Data Type, Key Info

Caches Unique ID

CachID
Number, Indexed, Primary Key

Cache Type

Indicates which type of cache record this is.
CachType
Text

Tree ID

Indicates the unique Tree ID number which generated this cache.
CachTreeID
Number
Trees(0,N)-(0,N)

Core Record ID

Indicates the unique Core Record ID number which generated this cache.
CachRecID
Number

Cache Key String

Indicates the unique key string used to locate this cached content.
CachKey
Text-Long

Cache Content Value

Indicates the actual value of the cached content.
CachValue
Text-Long

Cache Content CSS

Indicates CSS needed for the cached content.
CachCss
Text-Long

Cache Content JS

Indicates JS needed for the cached content.
CachJs
Text-Long