Reciprocal relationships (or connections)

In the systems I’m used to, if you relate A to B, then B is ipso facto now related to A. It doesn’t seem to work that way in Tadabase.

Simple example: I’ve got two data tables, Clients and Invoices. Initially, in the Invoices table I created a connection to Clients, so when I create a new Invoice (child) record, I’m asked to link it to a Client (i.e. pick its parent). That works fine. Every invoice record is linked to a client record.

But now I’m over in Clients and I want to know something about what I think of as linked Invoices. I use the term “linked” to avoid confusing things by misusing Tadabase’s vocabulary here. I understand Tadabase makes a distinction between “connections” and “relationships”, and I also understand that connecting Clients to Invoices doesn’t necessarily connect Invoices to Clients.

So I’m in Clients scratching my head. Over in Invoices, there are already six records that – to my mind – are linked to client ABC. How can I “see” them? count them? get the date of the most recent one?

Hi @WilliamPorter-

Could you post a screenshot of your connections picture of the two tables? You can find it under Support tab on the left side.

Thanks
~Adam

Thanks Adam for offering to help. I’m pasting below screenshots from both the Table Connection Details tab and the Table Connection graph. I’m sorry that they are a mess – there are some deprecated connections in there (anywhere you see a connection field whose name begins ZZZ) and I don’t have time tonight to clean that up before responding.

The key thing is the linkage between Clients and Invoices. The overall ERD is more complex. Normalized it’s like

Clients < Projects < Activity < Invoices

but I have thrown in a direct connection from Clients to Invoices because Invoices actually belong to clients (not as you might think) to Projects. As I said I have no trouble linking a new invoice record to a Client. My problem is figuring out how to “see” linked invoices from the perspective of Clients.

Thanks.

Hi @WilliamPorter-

You have some circular relationships (invoices and clients) that is one of the issues. Shouldn’t have that in the connections. Think of the connections in Tadabase like parent/child. Which one has to come before the other? Typically you would need a client before invoices are created. Thus, your invoices table should have a connection TO the client table. Client is the parent and Invoices is the child. (Arrow pointing from invoices to clients)

Additionally, you should consider how your projects work. Adding that into the mix will complicate the relationship of clients and invoices. But hold true to the parent/child and you should be able to set them all correct.

Do you need a client before projects? Or do you need a project before the clients? We can safely assume that invoices will always be a child of either the projects or the clients as I can’t think of any scenario where an invoice has to be created before you have a client or a project.

Does that make sense?
Adam

1 Like

Airtable works this way I believe. The way they handle relationships is really easy to use. You don’t have to be bothered with what direction. It simply creates it in both directions. I made a short video to demonstrate how easy it is to link to tables and perform what airtable calls a rollup to combine data in other fields. A lot of this can be done in tadabase, but it certainly had a learning curve for me personally and it takes more time. It’s one element that I don’t have to think about when I begin to build because ultimately if there is a relationship, and the parent/child relationship only exists when I need it to. it naturally exists in principle I don’t the the UX to remind me of those limitations. In AT the UX is not altered. My job is to 1. Create a door that links two tables together, and 2. Build what I need to to get the job done.