Bases: Relations Between Notes From Other Bases (Relation Among Bases)

Use case or problem

I’d like to have a property that allows me to quickly and easily select one or more options from a knowable/queryable set of notes.

For example, I have a list of fountain pen inks which I want to link to a known set of ink makers without typing all of them in every time I add a new ink maker. A simple drop-down list of all of the ink makers makes this much more convenient.

I would also use this to list what operating systems an application supports, or what authors worked on a book, or any other kind of relation between files that is stored in properties.

Proposed solution

A relation column type which allows you to select a Base (and perhaps View) from which to populate its drop-down list.

In classic database terminology, this is a relation. Where one table relates to another using foreign keys and is optimized via indexes.

Current workaround

I currently use DBFolder with Dataview and while clunky in many ways, DBFolder does support relations where it pulls its options for a column from another (or the same) DBFolder database.

The only other options I can think of is you can use the standard Bases dropdown similar to this after all of the notes you want to appear in the list have been added to at least one other note. This wouldn’t auto-populate the list with new entries however.

Related feature requests

This is a similar but distinct use case involving formulas rather than populating lists:

This one is about taking relations and using them to create a pivot table:

Querying relationships is of course a major component of nearly all databases and was requested from all similar query languages and database type Obsidian plugins, so as more people move to Bases this will likely become increasingly demanded.

5 Likes

Use case or problem

Say I have a note for each movie night I run. In the properties for each night, I might have an array of the movies seen, which could be links to files. I’d like it if I could retrieve the data for those files, including images, and expand that array into a new entry for each one. Then I could display a card view that’s a gallery of every movie watched during the movie nights.

Importantly, the same movie could turn up more than once in the data, which is why just starting with the movies wouldn’t work.

Proposed solution

Maybe a global function?

1 Like

Yes, would make bases truly more versatile!
Right now, I have to manually re-write info I want one base item’s properties to « inherit » from another base item’s property.