A Table Field, aka a table column, describes a single property of a table record (see Table Record for details). The properties of a Table Record cannot be arbitrary; instead they must come from the fields for that table. This corresponds neatly with the concept of a field or column in a database.
All tables have a special field called the ID field which is added automatically and cannot be edited. In addition, it has a few special properties such as uniqueness and the fact that it cannot be edited after the record is created.
All tables also have 2 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.
All other fields are added by the user. Other fields are always optional. A record may or may not have an entry for any given field. In addition, when creating a field, the user may select the data type for that field which constraints what types of data can be stored in that field for any given record.
Table ID | Fields are tied to a table. This is implicit in the UI. |
Unique Name | A 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. |
Label | The display name of the field. This is shown in the UI. This property can be changed after a field is created. |
Description | A short description of the field which can be added by the user. |
Order | The order fields are displayed. This is implicit in the UI. |
Field type | Entries 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. |
Hidden | When deleting fields from a table, they are only soft deleted, which hides them in the UI. Soft deleted fields can later be restored, along with the corresponding data. |
Unique | Only 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. |
Text | Sometimes 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. |
Number | Otherwise known as a float, corresponds to a Postgres “double precision”. It can represent any real number with 15 decimal digits of precision. |
Boolean | A true of false value. Commonly displayed as a localized “Yes” or “No” in the UI. |
Integer | A 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 |
Interval | An interval of time. Internally, we represent this as a decimal number of seconds, though we often display with an hour:minutes:seconds.millseconds format. |
Image | A URL of an image. Users can manually enter a URL or upload the image to our storage. |
User | A string corresponding to the ID of a user within this Tulip instance |
Datetime | A 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. |
Color | An RGB color corresponding to the standard CSS representation for that color. https://developer.mozilla.org/en-US/docs/Web/CSS/color_value Often we display the color itself in a small palette in the UI. |
The ID field has a few special properties:
These fields share a few special properties:
ID | Name |
---|---|
QA-T84 | Table Management : 05 - Add columns to a table |
QA-T85 | Table Management : 06 - Edit a table column |
QA-T86 | Table Management : 07 - Edit a table column description |
QA-T87 | Table Management : 08 - Delete a table column |
QA-T88 | Table Management : 09 - Restore a deleted table column |
QA-T89 | Table Management : 10 - Reorder table columns |
QA-T93 | Table Management : 13 - Sort table records by column in table view |
QA-T242 | Embedded Tables : 00 - Sort an embedded table |
QA-T245 | Embedded Tables : 00 - Handle deleted fields in embedded tables |