[APPROVED] Polymorphic relations. When creating relation, ability to have many Types from which to choose, and not just one Type

It is theoretically possible, but I’d not recommend it.
Extracting references from rich text is a PITA.
References are great for adhoc relations where you don’t need to leverage them elsewhere.
As soon as you want to build upon them (formulas, automations, lookups) they become less useful.
Anything you built might get superseded by genuine polymorphism at some point :wink: so your work would be wasted.

For the time being, if you must have links to many dbs, it’s probably better to just use multiple relations and optimise the UX/UI with thoughtful relation views and field hiding.
If you can afford to wait a while, that’s probably going to yield the best result :blush:

4 Likes

Wow, can you share the link of the item in Roadmap. Thanks.

It may not look like it, but this item is the first of several that may be helpful for you
https://the.fibery.io/@public/Public_Roadmap/Roadmap-Board-5974#Roadmap_Item/Highlight-Creation-212

1 Like

I, too, wonder if the concept of ‘tags’ wouldn’t accomplish a lot here. Creating a new entity type and then associating it with lots of other entity types (if I understand that’s what’s being suggested) seems a little like overkill for many use cases, if a person could just create some tags that can be applied all over the place in Fibery.

Have been running into some use cases recently where this feature would be very helpful. How’s the development coming along?

1 Like

True polymorphic relations are some way away, sorry.

1 Like

@Chr1sG Hi, is there some relationship between Highlights and Polymorphic?

What do you think? :wink:

Under the hood, ‘highlights’ is a special kind of database which supports what we call ‘multi-relations’, that is the ability to link to a single entity from any of several databases.
So a highlight has a ‘source’ multi-relation and a ‘target’ multi-relation, and the configuration of highlights determines which dbs are available for each of these.

i.e. Source 1:n Highlight n:1 Target

The result is the ability to link (indirectly) from any source-db entities to any target-db entities.
At the moment, the source dbs have to have a rich text field, because the ‘highlight’ is bound to a specific snippet of text.
On the source entity, the highlight shows as a selected piece of text, and on the target it shows as a feed-view like relation field.

In the long-term, the same underlying tech could allow entities to be linked via multi-relations in a less restricted way.
So you could say, that highlights is a v specific (and limited) form of polymorphism, but we do have plans to make it more powerful… just no ETA :person_shrugging:

4 Likes

Any word on this? Still in the backlog?

You may expect it no earlier than Q1-Q2 2026

5 Likes

When you say “expect”, are you confirming this is on the nearish-future roadmap then?

It is a part of 2026 strategic plan. I hope we will share it in November or early December

6 Likes

This is great to hear. Still have a huge need for this. More recent use case:

Trying to set up a system for tracking traffic to a range of websites of my clients. Would like to list out in a table in a new db types of user actions on this app. Each of the sites in question has a breakdown in Fibery similar to some of the structures I’ve seen you posting about such as:

Site → Experience Area → Master Feature → Feature

For the purpose of quickly adding in the activity types in the table, which are going to relate ultimately to one of those 4 areas on the site hierarchy, it would be great to have a relation that could draw from any of the options in that hierarchy. Then as these fast entries are made in the table, I could simply choose the “site” at the top level, and come back later as the system is developed and change to a Master Feature or Feature. Without polymorphic, I have to have a relation to “site” at the top level so I can at least enter which of the sites these user actions relate to, then as I build them, have a second relation that will relate to the lower level Master Features or Features that are actually in that Site - so I wind up with a redundancy of relations here.

Hope that was useful and really hoping to see Polymorphic soon! Nobody else out there has solved this, although I did realize in my accounting software I can add a category of expense at an unlimited level of subcategory, all from one field - so possibly unknowingly that vendor has implemented a sort of polymorphic set up that is actually very useful!

1 Like