Skip to main content

Data Modeling

GraphQL and REST Data Modeling​

Setup Table relationships via Builder Studio : Table Relation | Joins. Various Data Modeling relationship types can be established at Table-to-Table and also Multi-Table levels.

  • Table Joins Setup a relationship between two tables (Table-to-Table)

  • Table Relation

    • Setup a relationship between multiple tables (Multi-Table)
    • 5 Level nested table joins can be configured

Generate code to implement data models and relationships. Complete use case via Low-Code Customization.

info

EasyManage generated code automates 95% of such development. Please verify the generted code and if needed low-code customize.

One-to-one relationship​

1x1 relationship between two tables.

One-to-many relationship​

1xM relationship between two tables.

Many-to-many relationship​

MxM relationship between two tables.

tip

If you have setup 1xM relationship between two tables, then MxM data model is available via some API calls and 1xM with rest.

  • MxM : via API calls ViewAll, ViewAllPaged, SelectWhere
  • 1xM : via API calls FindOne, GetOne
info

Please refer to GraphQL and REST feature details for examples of 1x1, 1xM and MxM relationships.

Table Relation and Joining Tips and FAQs​

caution

Follow these to avoid compile errors in generated code.

  • Circular definitions i.e. using one table more than once in Table-To-Table Joins or Multi-Table Relations, is not supported. Generated code will have compile errors.

  • During code generation, Table-To-Table join duplicates based on TableName-to-TableName are skipped out, as GraphQL needs unique schema across project. This can change 1x1 or 1xM of the kept entry (as skipping is random).

  • Table-Relations are based on Table-to-Table join units.

  • All Tables referenced in Table-Relations on all levels must be included in Build Selection. Else generated code will have compile errors.

  • Table-Relations become broken if any of its Table-to-Table join definitions are deleted afterwards. Such entries may be skipped during code generation, or they will not compile. In such cases Delete the entry and define a new one.

  • Tale Join : Column Joins (Match Columns): If table columns to join are configured with "Edit" in Table Join at any given level, then that level nested models are joined with those columns.

  • Only column joins with EM data types CHAR and NUMBER are considered, rest are skipped in code generation.