specs/models/M_TABLE_RECORD_FIELD

Table Record Field

A Table Field describes a single column of a table record (see Table Record for details).

Field Properties

Table IDFields are tied to a table. This is implicit in the UI.
Unique NameA unique name for a column that cannot change after creation. This is not visible in the UI, but is relevant when accessing the Tulip API.
LabelThe display name of the field. This is shown in the UI. This property can be changed after a field is created.
DescriptionA short description of the field which can be added by the user.
OrderThe order fields are displayed. This is implicit in the UI.
Field typeEntries in this field must be of this data type. See Field Types below for a full list. Cannot be changed after the field is created.
HiddenWhen archiving fields from a table, they are hidden in the UI. Archived fields can be viewed or restored, along with the corresponding data.
UniqueOnly true for the ID field. Displays an error to the user if they ever tries to create a record with a duplicate value in this field.
Table Link (Linked Record field type only)The table that the Linked Record field is linked to

System Fields

All tables have a unique ID field which is added automatically and cannot be edited. The unique ID for a give Table Record is provide by the user and:

  • must be unique across all records in this table
  • is always data type "Text"
  • must be specified when adding a record, and cannot be edited after the record is created.

All tables also have two metadata fields “Date Created” and “Date Updated”. These are datetime fields that cannot be directly edited by the user, only viewed. They track when the record was created and last updated respectively. By default, these fields are not visible. To see them, a user needs to toggle “View Metadata Fields”.

User Specified Fields

Users can specify up to 197 custom fields. Each field will have a user specified data type, described below. A record may or may not have an entry for any given field.

  • Can be created and archived from the UI.
  • Users specify the label, type, and description for their field. Label and description can be edited after the field is created, but type cannot.
  • All user specified fields are optional, as in a record can either have a value for a given field or leave it blank.
  • All user specified fields are not unique, so multiple records in the same table can have the same value for a given user specified field.
  • Archived fields can be restored.
  • A table can have no more than 197 user specified fields (200 total column max).

Field Types

TypeDescription
TextSometimes known as a string, this corresponds to the “text” type in postgres and can include any series of characters. The only restriction is that it must be less than 1 Gb as enforced by Postgres.
NumberOtherwise known as a float, corresponds to a Postgres “double precision”. It can represent any real number with 15 decimal digits of precision.
BooleanA true of false value. Commonly displayed as a localized “Yes” or “No” in the UI.
IntegerA number without a decimal point. Uses the Postgres “bigint” type. It can represent an integer between -9,223,372,036,854,775,808 and 9,223,372,036,854,775,807
IntervalAn interval of time. Internally, we represent this as a decimal number of seconds, though we often display with an hour:minutes:seconds.milliseconds format.
ImageA URL of an image. Users can manually enter a URL or upload the image to our storage.
UserA string corresponding to the ID of a user within this Tulip instance
DatetimeA Postgres “timestamp with time zone”, this is a specific time on a specific day. By convention, a day with time midnight is often used to refer to whole days.
ColorAn RGB color corresponding to the standard CSS representation for that color. How To Specify Color Value
Linked RecordA link to the ID field of another table with one of four types of mappings: One to One, One to Many, Many to One, Many to Many
VideoA URL of a video. Users can manually enter a URL or upload the video to our storage.
MachineA link to a single [Machine](/models/M_MACH) within Tulip.

Additional Information on Linked Record Fields

Linked Record fields provide additional options within Triggers. The following options are available from the 'Table Linked Record Field' menu option within the 'If, If/Else' clause of a Trigger:

NameDescription
Is Linked ToReturns true if a placeholder field is linked to another placeholder
Is Not Linked ToReturns true if there are no links between two placeholders
Has LinksReturns true if a placeholder field has any links
Has no LinksReturns true if a placeholder field does not have any links

Tests

IDName
QA-T84Table Management : 05 - Add columns to a table
QA-T85Table Management : 06 - Edit a table column
QA-T86Table Management : 07 - Edit a table column description
QA-T87Table Management : 08 - Delete a table column
QA-T88Table Management : 09 - Restore a deleted table column
QA-T89Table Management : 10 - Reorder table columns
QA-T93Table Management : 13 - Sort table records by column in table view
QA-T242Embedded Tables : 02 - Sort an embedded table
QA-T245Embedded Tables : 05 - Handle deleted fields in embedded tables
QA-T464Tables CSV Import : 01 - Import to table
QA-T467Tables CSV Import : 03 - Import from export
QA-T702Table Management : 05 / Table Columns must be named
QA-T705Table Management : 06 / Table Columns labels cannot be blank and ID cannot be edited

Requirements

No requirements