Best Practices for Structuring Large Relational Databases in Baserow?

Hi Baserow community,

I’m currently in the early stages of building out a relatively complex internal tool using Baserow, and I’d love to hear some guidance or best practices from those of you with experience managing large datasets and relationships in this platform.

My project involves around 10–12 interrelated tables — tracking projects, clients, team members, tasks, documents, and timelines. Many tables have linked fields (e.g., each task links to a project and an assigned user), and I anticipate scaling this up over time. I want to make sure I’m structuring things in a way that keeps everything maintainable and performant as the data grows.

A few questions I’m grappling with:

  • Are there any performance limits I should be aware of when it comes to the number of rows, fields, or relationships in a single table?
  • How do you typically manage many-to-many relationships? Do you create junction/linking tables, or does Baserow handle this differently?
  • Are there naming conventions or organization methods you’ve found helpful for keeping complex bases readable?
    🧑‍💻 Imagine using FlutterFlow to build a mobile app with all the data stored in a Baserow database
  • How well does Baserow handle nested lookups (e.g., displaying related fields from a related table of a related table)?
  • Are there any plugins or Baserow-specific features I should explore to help manage this type of structure?

I’m coming from an Airtable and SQL background, and I’m enjoying Baserow’s flexibility so far — just want to make sure I’m not missing any key design decisions early on. Also, I’m currently exploring tableau training in hyderabad to expand my data visualization skills alongside Baserow.

Thanks in advance for your insights

I don’t work at baserow but the performance is at least way better than for example airtable.
limitations on rows is, if I remember correctly, one of the things that are included in your plan. Performance when you reach a certain fields*rows, I guess that is pretty difficult to quantify but my databases with some 10 000 rows and maybe 20 fields I don’t experience any noticable lag. At least not any compared to airtable that took quite some time loading. Also, it seems like there’s absolutely no lag via API, so any lag potentially experienced might just be the UI.

Create junction table :slight_smile:

My data very often connected to music and there are very many good data rules for this industry, it’s almost impeccable (see DDEX) :slight_smile:
Although I personally find using formulas for contatenating the primary key to give me what I need.

Let’s say I want to see the songwriter and their function on a linked junction table in my songwriter field in my recordings table, then it looks like this:

Songwrite table “People” - Max Martin
Junction table “Roles” - C: Max Martin (C, A, AD and other codes are signifiers for composer, author and others. The junction table concatenates “C”+" : "+“Max Martin” so that when it arrives as linked in the recordings table I see directly what role what person had.

Hope this helps a little bit :slight_smile: