---
title: Link one Object to another
url: https://tideswell.xyz/docs/objects/link-objects
description: Point a field at another Object, so one record holds a real connection to another instead of a name someone typed in twice.
---

> Documentation index: fetch https://tideswell.xyz/llms.txt to discover every page before exploring further.

# Link one Object to another



An **Object** is a kind of record your team defines, and an admin builds it in
**Settings › Objects**. Start at <Ref to="objects" /> if that is new to you. A
**Linked record** is one of the field types you add there, and it is how one record points
at another: a quality check that knows which production run it belongs to, a production run
that knows which factory made it.

People pick from a real list instead of typing a name, so the value survives a rename, and
the connection can be filtered, counted and totalled afterwards. This page covers which way
round the link should point, how to add it, and what the record on the far end gets without
you building anything there.

## Before you start [#before-you-start]

You need to be an admin, because the field is added in **Settings › Objects**. Both sides of
the link have to exist before you can join them, so if you are pointing at an Object you
defined yourself, create it first. See <Ref to="objects/create-an-object" />.

You can point at the records Tideswell already ships with as well as your own. Suppliers,
Products, Purchase Orders, Customers and Orders are all offered in the same menu, so an
Object you defined can point straight at the factory that made the goods.
<Ref to="objects/built-in-or-your-own" /> covers which of the two you should be using.

## Which way round should the link go? [#which-way-round-should-the-link-go]

Put the field on the Object there are more of, pointing at the one there are fewer of. A
quality check belongs to exactly one production run, so the field goes on Quality checks.
Ten checks can then point at the same run, and the run lists all ten of them without you
adding anything on that side.

Fairgreen Golf Co. defined two Objects of its own: **Production runs**, one per style per
factory per season, and **Quality checks**, one per inspection.

The linked field lives on Quality checks and points at Production runs. Production runs in
turn has its own linked field pointing at Suppliers, which is how each run knows its
factory.

Decide the direction before you save, because which Object a linked field points at is fixed
once the field exists. <Ref to="objects/plan-your-fields-first" /> is worth four minutes
before you start clicking, and it sets out what correcting one costs.

## Add the linked field [#add-the-linked-field]

1. Open **Settings › Objects** and click the Object that will hold the field. For Fairgreen
   that is Quality checks.
2. Press **Add field** and type the label, for example "Production run". Labels are fixed
   once saved, so use the words your team already says out loud.
3. Open the **Type** menu and pick **Linked record**, under the "Choices & links" heading.
4. In **Points at**, choose the Object this field points at.
5. In the box asking what the other Object calls these, type the name of the panel that will
   appear over there, for example "Quality checks".
6. Press **Save field**.

The field appears at the bottom of the field list. Move it up with the arrow buttons on its
row if you want it near the top of the record form.
<Ref to="objects/add-a-field" /> explains the type menu in full.

## What does the reverse view give you? [#what-does-the-reverse-view-give-you]

It gives the record on the far end a panel listing everything that points at it, under
whatever name you typed. Open a Fairgreen production run and there is a "Quality checks"
panel holding every check logged against that run, each one a link straight through to it.
You add no field on that side to get this.

Name the panel in the plural and in your team's own words, because that name is what people
read on the other record. If you leave the box empty, the field still works and people can
still choose a production run; the run itself simply does not gather them into a panel.

You can change your mind later. The **Reverse view** button on the field's row reopens both
the panel name and the one-per setting, at any time, without touching the field itself.
<Ref to="records/link-a-record" /> shows what the panel looks like from the other side and
how people work with it day to day.

## Should you limit it to one per record? [#should-you-limit-it-to-one-per-record]

Tick **Only one per** when the connection is genuinely one to one and a second one would be
a mistake rather than a normal Tuesday. Fairgreen caps its Final inspections field at one per
production run, so nobody can log two final inspections against the same run and leave two
different verdicts on the record.

* Leave it clear when many are expected. Quality checks against a production run should be
  uncapped, because there are meant to be several.
* Tick it when a second link would be a duplicate. One compliance certificate per factory,
  one final inspection per run.
* The tick becomes available once the reverse view has a name, since the cap and the panel
  describe the same relationship from the two ends.

Once the cap is on, anyone linking a record is stopped at the moment they pick a target that
is already taken, not later in a report nobody reads.

## What if records already break the one-per rule? [#what-if-records-already-break-the-one-per-rule]

You are told before anything changes. Switch the cap on and Tideswell checks the records
already saved.

If any target is pointed at more than once, it lists the offending records by name and
asks you to sort them out first. Nothing is saved until you do.

The list names up to twenty records, and tells you when there are more than that. Open each
one, decide which link is the correct one, change or clear the others, then come back and
tick the box again.

This is the same pattern you will meet all over **Settings › Objects**: before a risky save,
you are shown exactly what is in the way, by name, with the fix spelled out. Cancelling the
dialog changes nothing at all.

## What can you change later? [#what-can-you-change-later]

Two things: the name of the reverse view panel, and whether the one-per cap is on. Both sit
behind the **Reverse view** button on the field's row and can be edited whenever you like.
The Object the field points at, along with the field's label and type, is settled when you
press Save field.

A few things people expect to break, which do not:

* Renaming the Object on either end is safe. Older links keep working, and the panel keeps
  listing the same records. See <Ref to="objects/rename-reorder-retire" />.
* Who can open each Object is a separate dial, on <Ref to="objects/permissions" />. Check
  that the people who make these links can view both sides of it.
* A linked field can be filtered on the record list, so you can narrow Quality checks to one
  production run in two clicks. <Ref to="records/filter-and-save-a-view" /> shows how to
  save that as a view.

The link is also what makes calculations possible. Once Quality checks points at Production
runs, a production run can count its checks, total the units rejected across them, or carry
a value in from the style it is making. <Ref to="objects/calculated-fields" /> is the next
page to read.
