> For the complete documentation index, see [llms.txt](https://docs.amltd.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.amltd.com/dc-works/databases-and-tables/define-and-manage-table-fields.md).

# Define and Manage Table Fields

Fields define the structure of a table and determine what type of information can be stored in each record.

A field consists of:

* A field name.
* A data type.
* An optional **Primary Field** designation.
* An optional **List** setting.

Fields can be defined when a table is created and managed afterward from the table’s **Fields** view.

### Open the Fields view

To view the fields in a table:

1. Select **Data** from the Main Navigation.
2. Open the database.
3. Select the table name.
4. Select **Fields**.

The navigation path identifies the open database and table:

> Databases » Database Name » Tables » Table Name » Fields

<figure><img src="/files/vs17sSwFnZ1ZchfWKcO9" alt=""><figcaption></figcaption></figure>

*The Fields view displays the fields that define the table’s structure.*

Each field displays:

* Its data type.
* Its field name.
* The controls available for managing it.

User-created fields include controls for editing and deleting the field.

### Fields created automatically

Every table includes four system-generated fields:

| System field  | Purpose                                            |
| ------------- | -------------------------------------------------- |
| Row Key       | Provides a unique system identifier for the record |
| Date Created  | Records when the record was created                |
| Last Modified | Records when the record was most recently changed  |
| Created By    | Identifies the user who created the record         |

These fields are created and maintained automatically by DC Works. They cannot be edited or deleted like user-created fields.

The visibility control beside each system field determines whether it is displayed in the table’s **Records** view.

{% hint style="info" %}
The **Row Key** is the record’s unique internal identifier. It is separate from the user-selected primary field.
{% endhint %}

### Add a field

Use **Add Field** to add another field to an existing table.

To add a field:

1. Open the table.
2. Select **Fields**.
3. Select **Add Field**.
4. Enter the **Field Name**.
5. Select the **Data Type**.
6. Select **Primary Field** if the field will serve as the table’s primary field.
7. Select **List** if the field must store multiple values.
8. Select **Add**.

<figure><img src="/files/iGyxvH3Qn4o1QlIddWS4" alt=""><figcaption></figcaption></figure>

*The Add Field window provides controls for the field name, data type, primary-field designation, and List setting.*

The new field is added to the table structure and becomes available in the table’s records and in Applets that use the table.

### Choose a field name

A field name should clearly identify the information stored in that field.

Use names that are:

* Descriptive.
* Consistent with the terminology used in the process.
* Distinct from other fields in the same table.
* Easy for Applet designers and users to understand.

Examples include:

* Equipment ID
* Serial Number
* Status
* Assigned To
* Checkout Date
* Notes

Avoid ambiguous names such as **Value**, **Information**, or **Field 1** unless their meaning is clear within the table’s intended use.

### Select a data type

The data type determines the kind of value the field stores.

DC Works provides the following basic data types:

| Data type  | Intended use                                                           |
| ---------- | ---------------------------------------------------------------------- |
| Text       | Names, identifiers, descriptions, notes, and other text                |
| Number     | Quantities, measurements, counts, and numeric values                   |
| Date       | Calendar dates and date-based information                              |
| True/False | Values with two possible states, such as Yes/No or Complete/Incomplete |
| Image      | Images associated with a record                                        |
| Signature  | Captured signatures associated with a record                           |

Choose the field type according to how the value will be entered and used—not merely how it appears.

For example:

* A serial number may contain only digits but is normally stored as **Text** because it is an identifier and is not used in calculations.
* A quantity intended for calculations should use **Number**.
* A completion state should use **True/False** instead of storing inconsistent text such as “Yes,” “Complete,” or “Done.”
* A date should use **Date** so it can be handled as a date rather than as ordinary text.

{% hint style="info" %}
Identifiers such as part numbers, asset numbers, ZIP codes, and serial numbers are usually best stored as Text. This preserves leading zeros and prevents the value from being treated as a quantity.
{% endhint %}

### Understand the primary field

The primary field is the principal field DC Works uses to identify and display a record.

Typical primary fields include:

* Item ID
* Serial Number
* Request Number
* Location Name
* Status
* Employee Name

The primary field is separate from the system-generated **Row Key**:

| Field         | Purpose                                                             |
| ------------- | ------------------------------------------------------------------- |
| Row Key       | Provides the record’s unique internal DC Works identifier           |
| Primary field | Provides the principal user-facing value for identifying the record |

A primary field does not automatically require every value to be unique. Select a field that provides the most useful reference for the records in that table.

To designate a field as the primary field, select **Primary Field** while adding or editing the field.

{% hint style="info" %}
Choose the primary field carefully. Applets and users may rely on it when displaying, selecting, or retrieving records.
{% endhint %}

### Create a list field

Select **List** when one field must store multiple values within the same record.

The individual values are separated by commas. An Applet can later:

* Retrieve the values in the list.
* Add a value to the list.
* Delete a value from the list.

For example, a list field could store multiple:

* Assigned users.
* Tags.
* Categories.
* Required actions.
* Related identifiers.

A value might appear as:

> Inspection, Repair, Quality Control

The **List** option is a field setting rather than a separate data type. Select the appropriate data type and then enable **List**.

{% hint style="info" %}
Use a List field only when multiple values genuinely belong to the same field in one record. If each value needs its own fields, status, dates, or other details, a separate table may be more appropriate.
{% endhint %}

### Edit a field

Use the pencil icon to change a user-created field.

To edit a field:

1. Open the table’s **Fields** view.
2. Locate the field.
3. Select the **pencil icon**.
4. Update the field name, data type, primary-field designation, or List setting.
5. Select **Update**.

<figure><img src="/files/hERPqhz9XxTWoL6biuTO" alt=""><figcaption></figcaption></figure>

*Use Edit Field to change the field’s name, data type, Primary Field designation, or List setting.*

Review existing records and any Applets that use the field before changing its configuration.

Changing a field’s name or type can affect how the field is understood or used elsewhere. Confirm that the revised configuration remains appropriate for the existing data.

{% hint style="warning" %}
Use caution when changing the data type of a field that already contains values. Existing values may not match the new type.
{% endhint %}

### Rearrange the field order

Fields can be rearranged to control the order in which they appear in the table.

To move a field:

1. Open the table’s **Fields** view.
2. Select and hold the field.
3. Drag it to the preferred position.
4. Release it to save the new order.

The updated order is reflected in the table’s **Records** view. Arrange fields so the most important or frequently used information appears first.

Reordering a field changes its position only. It does not modify the field configuration or the values stored in existing records.

<figure><img src="/files/W0e8NtCZQ0LhvyhjDBqG" alt=""><figcaption></figcaption></figure>

*Click and drag a field to change its position in the table.*

### Delete a field

Use the trash icon to remove a user-created field.

To delete a field:

1. Open the table’s **Fields** view.
2. Locate the field.
3. Select the **trash icon**.
4. Confirm the deletion when prompted.

Deleting a field removes it from the table structure and removes the values stored in that field from the table’s records.

{% hint style="warning" %}
Deleting a field and its stored values is permanent. Before deleting it, confirm that the information is no longer required and that the field is not needed by an Applet or integration.
{% endhint %}

System-generated fields cannot be deleted.

### Define fields during table creation

When creating a table **From Scratch**, fields can be defined before the table is added.

The table-creation screen displays the following field settings:

| Setting       | Purpose                                          |
| ------------- | ------------------------------------------------ |
| Name          | Defines the field name                           |
| Data Type     | Defines the type of information stored           |
| Primary Field | Designates the table’s principal reference field |
| List          | Allows the field to contain multiple values      |

Use the plus control beside **Table Fields** to add each field.

While defining a field:

* Select the check mark to save the field.
* Select the X to cancel the current changes.
* Select the pencil icon to edit a saved field.
* Select the trash icon to remove it from the proposed table.

After the required fields have been defined, select **Add Table** to create the table.

Additional fields can still be added later from the table’s **Fields** view.

### Review the table structure

Before adding records or using the table in an Applet, review its fields and confirm that:

* Each field has a clear purpose.
* Field names use consistent terminology.
* Each data type matches the values it will store.
* Identifiers are stored as Text where appropriate.
* The most useful field is designated as the primary field.
* List is enabled only for fields that require multiple values.
* Unnecessary or duplicate fields have been removed.
* System-generated fields are visible only where useful.

A clear table structure makes Applets easier to build and reduces data-entry inconsistencies.

### Field-management summary

From the **Fields** view, users can:

* Review the table’s complete field structure.
* View the system-generated fields.
* Control the visibility of system-generated fields.
* Add user-defined fields.
* Select from the available data types.
* Designate a primary field.
* Allow a field to contain multiple values using **List**.
* Edit existing user-created fields.
* Delete fields that are no longer required.

### Next

Continue to **Add and Manage Table Records** to learn how to add, edit, import, export, filter, delete, and restore the records stored in a table.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.amltd.com/dc-works/databases-and-tables/define-and-manage-table-fields.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
