# Noloco Tables

Your portal's data tab allows you to view your existing tables, create new tables, add additional fields to your existing tables and create, update and delete table records. It's your very own database.

### What's a table?

A table contains a list of items of the same type, like *users*, *companies* or *tasks.* Your portal will come with several tables by default, such as **Users** and **Companies**. But you can add a table to store any sort of list that you'll need for your company.

Each table is built of **records** and **fields**. Again, each table comes with some default fields such as **id**, **uuid** and **created at**.

### What's a record?

A record is simply an individual item in a table. Imagine a row in a table or a row in a spreadsheet. If you have a table of users, then an individual user is represented by a record.

### What's a field?

Information related to each record is stored in **fields**. Each field can store different types of information such as **text, checkboxes, select options** or a **relationship to another record.**

You can add any number of fields to each table, including the **User** and **Company** tables. This will help you track and store even the most complex of records.

Each field is defined by a **Type** and a **Name.** The type controls what type of data you can store in the field (more on that later) and what sort of input box you and your clients will see when they interact with the field.

### Can we have an example?

Before diving any further into tables and field types it makes sense to start with a simple example. As mentioned, each portal comes with a **User** and **Company** table. But what if you wanted to list your client's **Project**s?

#### Create your new table:

* Visit the data tab in your portal's builder. Click **New Table** at the top of the left sidebar.
* Choose a name for your table; in this case, **Project.** **Pro tip:** It's much easier if your table name is **singular.** Even though it will be a list of Projects, each individual record will be a Project.
* Press **Save**

![](https://319575345-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MifpIQWu0HCVYAt51oT%2Fuploads%2Fgit-blob-9238bd28a51b2444ccca57a97a705d0907d9a69d%2FNew%20collection%20Noloco%20tables.png?alt=media)

#### Add fields to your table:

It's time to start thinking about what a project is. It's probably got a **Name,** it might have a **Description.** When we work on a project it's for a specific client, so we'll have to store what **Company** it's belonging to. We might want to specify the project **Owner**, that's the person on our team who looks after the project. And then we might have a **Start Date** and a **Due Date** and a **cost** fiel&#x64;**.**

Breaking it down, that's 6 new fields we will have to add to our new table, but first we need to decide what field type each will need to be.

* **Name** A simple **text** field
* **Description** A simple **text** field
* **Company** This will need to be a **relationship** between **Project** and **Company.** There will be 4 different options that let you describe the relationship (more on this later). \&#xNAN;*A Project can only have one Company. A Company can be associated with many Projects.*
* **Owner** Similar to the above, this will need to be a **relationship** between **Project** and **User**. The relationship is as follows: \&#xNAN;*A Project can only have one Owner. A User can be associated with many Projects.*
* **Start Date** A simple **date** field
* **Due Date** A simple **date** field
* **Cost** A simple Integer (decimal) field

Don't forget to hit **Save**.

![](https://319575345-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MifpIQWu0HCVYAt51oT%2Fuploads%2Fgit-blob-06a25ddaed70fb36db15f2657951c7739530835a%2FNew%20field%20Noloco%20tables.png?alt=media)

### How to create and add a new field

Once you have created your table, you can easily add new fields to store additional information. Here's a step-by-step guide on adding fields to your table:

{% @arcade/embed url="<https://app.arcade.software/share/ZX7Z2tyxTBeQqD7Vmy6t>" flowId="wh1rnUBV3sugoSMrusxH" %}

#### Steps to add a new field:

1. **Navigate to your table** in the data tab of your portal's builder
2. **Click "Add Field"** or the "+" button to create a new field
3. **Choose a field name** that clearly describes what information will be stored
4. **Select the field type** that best matches your data (text, date, number, etc.)
5. **Configure field settings** such as whether it's required, default values, or formatting options
6. **Save your field** to add it to your table

### What are field types?

As you saw in the above example, field types help us model the table in a reasonable way, and then link records to other records (often in other tables).

There are several field types and you can have as many as each as you like. For complete details on each field type including configuration options, use cases, and best practices, see the [Field Types documentation](https://guides.noloco.io/data/collections/field-types).
