In Ninox, we have the ability to create relationships between tables by linking tables based on the relationships between the contents of the tables. Two type of links are available in Ninox – Inner and Outer – and both of these linking or relationship types play an important role in defining the groups (Stacks or Families) of data in the data model.

While Inner and Outer Joins are described and detailed in other sections of this manual, the focus of this page is the grouping of data tables based on their relationships.

An inner join in Ninox is called a Parent/Child Relationship while an outer join us call a Table Relationship. As is the case with human families, each Data Family is headed up by a Parent Table. All tables linked to the Parent with an inner join (Composition) are considered Child tables of that Parent. An example of a Data Family and all of the members of that family is presented below.

When looking at the Data Family (or Stack) above, consider that each table is composed of the tables within it. Consider also that each Child Table can contain multiple records all related back to the single record in the Parent above. To better understand this concept, refer to the image below. It is the exact same family shown above, but with the table names replaced with more meaningful titles in the context of a Customer Invoicing Database.

In the image above, all four tables are related to the table above via an inner join where the lower level table is the source of the link, the upper level table is the destination of the link and the Composition parameter in the link is set to “Yes”. And remembering what we said about multiple children relating back to a single parent in the table above, one may read the image above as follows:

  • Each Customer may have multiple invoices in their account
  • Each Invoice may consist of multiple line items
  • A customer may pay for the goods and services represented on each individual line item via multiple payments

Given that a Data Family / Stack is referred to by the name of the top-most table, the image above is a picture of the “Customer Data Family” or “Customer Data Stack”.

Now consider a different Customer Invoicing Database as depicted in the image below:

The data model above contains the exact same four tables as the picture of the Customer Data Family and provides for the exact same functionality wherein a Customer may have multiple invoices in their account, each invoice may consist of multiple link items and each line item may result in multiple payments rendered by the customer. In the model above however there are three families – The Customer Family, Payments Family and Invoice Family. What we learn from the images above is as follows:

  • There are often multiple ways to get “the right” answer in Ninox; each individual’s approach therefore is based on their unique needs, information and business intelligence delivery requirements and reporting / output goals and objectives.
Revision: 3
Last modified: 22 January 2021

Need more help with this?
Don’t hesitate to contact us here.

Thanks for your feedback.