Editor overview
The editor allows to visualize and edit models in an intuitive manner. Models are composed of entities, enums and relationships.
We decided to call it model to keep it more general as it could be used for any type of project, not necessarily a relational database.

Entities
Entities are composed of fields, each field has a type and could have type specific validations. Checkout the managing entities doc to get more details on fields and entities in general.
The editor supports two types of entities:
- Standalone
- Dependant
Standalone entities as the name suggests exist on their own and are usually represented by a table (when dealing with relational databases), on the other hand Dependant entities only exist as part of a Standalone entity and are represented as either a JSON object or array (based on the cardinality).
We decided to treat nested JSON fields as first class citizens to improve readability, allow developers to define the structure of these Dependant entities, this also allows for improved validations when managing the data.
Enums
Enums are static dictionaries that can be reused across different fields in different entities across the project.
The enum value will be stored as an integer, and the definition will be used to display the string value to the user when reading and managing the data.
Relationships
Relationships communicate to the users that two entities are related to each other.
There are three cardinalities:
- One to one
- One to many
- Many to many
One to one and One to many relationships can either be weak or strong relationships, in relational databases a strong relationship between two standalone entities will be enforce ath the database level with a foreign key. When dealing with dependant entities weak relationships will be used as they cannot be enforced at the database level.
Read more about relationships in this doc.