# Relationships

> Leverage Directus relationships to create powerful data connections. Explore Many to One, One to Many, Many to Many, and Many to Any relationships, along with Translations for multilingual content management.

Directus supports all standard relationship types, as well as a few more of its own compound types, meant to streamline certain common configurations.

## Many to One (M2O)

![2 tables: One for cities each of which has a reference to a country ID, and a country table](/img/57e9702f-c8fa-48d4-90bc-a8443248d406.webp)

In a M2O relationship, multiple items from the one collection are linked to one item in a different collection. One field is added to the 'many' collection referencing the primary key of the 'one' collection.

![A cities collection item with the country many-to-one relation set to the country "Chile"](/img/3003d17c-2aa1-4664-ad58-34a755f24876.webp)

On the [item page](/guides/content/editor), having a M2O field does not automatically provide navigation to the related collection's items. To achieve this, the related collection requires a One to Many field to be set up.

<callout icon="i-lucide-info">

**M2O Examples**

- Given `cities` and `countries` collections, many cities would be assigned to one country.
- Given `orders` and `customers`, many orders would be assigned to one customer.
- Given `books` and `publishers`, many books would be assigned to one publisher.

</callout>

## One to Many (O2M)

![A one-to-many relation showing 2 tables: cities and countries](/img/574de2a6-1aa8-4594-942a-e98d79ec183e.webp)

In a O2M relationship, one item from a collection is linked to multiple items in a different collection.

![A one-to-many relation field being open](/img/63dcee0a-9ee7-4328-bd6b-bd85cc4660c9.webp)

Creating a O2M interface on the 'many' side of a M2O relationship creates an `Alias` field, which lets us access related items. This does not create a new database column as the O2M field is purely virtual. It creates an interface on the [item page](/guides/content/editor) to access items from an O2M perspective.

## Many to Many (M2M)

![A many-to-many relation showing 3 tables: recipes, ingredients and recipes-ingredients](/img/cb29838f-12fd-4b1a-8044-d7c7938670df.webp)

In a M2M relationship, an additional collection is created known as the junction collection. The junction collection stores the primary keys from two related collections, allowing for any number of items to be related between two collections.

You can also have a self-referencing M2M relationship that connects items in the same collection.

<callout icon="i-lucide-info">

**Self-Referencing M2M Examples**

- Given an `articles` collection, you could configure related articles.
- Given a `users` collection, you could configure a friends list.
- Given `papers`, you could configure citations.

</callout>

One example is "Related Articles", where each article relates to many other articles.

## Many to Any (M2A)

<video-embed video-id="f711e94f-14c1-48dd-b00c-70a340351412">



</video-embed>

![A series of tables, showing blog, content_builder, headings, images and text_bodies](/img/d4cc93fb-3c0b-41fe-ae1c-5cc4f1d23979.webp)

In a M2A relationship, one collection can be related to any item in any collection. This is sometimes known as a matrix field or replicator.

When you configure a M2A in Directus, a M2A `Alias` field is created as well as a junction collection. The junction collection in a M2A relationship also stores the collection name for related collections.

<callout icon="i-lucide-graduation-cap" color="secondary" to="/tutorials/projects/create-reusable-blocks-with-many-to-any-relationships">

Read our tutorial on using a Builder (M2A) to create reusable page components.

</callout>

## Translations

![An articles, languages and articles_translations table, linked by language_id](/img/f1fe2c0b-4baa-47e3-a7c1-a49c27a9852b.webp)

When you create a Translations interface in Directus, a translations O2M `Alias` field is created, as well as a `languages` collection and a junction collection between your main collection and `languages`. All translated text is stored in the junction collection.

<callout icon="i-lucide-wand-sparkles" color="secondary" to="/guides/content/translations#quick-setup-with-generate-translations">

Use the **Generate Translations** wizard in collection settings to automatically create the full translations infrastructure — languages collection, junction collection, relationships, and fields — in one step.

</callout>

<video-embed video-id="2d192e76-378b-4540-9d41-2506460a50af">



</video-embed>
