Many/Most software applications are used model some part or aspects of a real or virtual world — its domain. As such, application make use of a data-model to capture the structure, properties, and behaviors of the entities living in that domain. Entities are defined to have a set of properties, each with a name and a type. Property types can be simple such as number, string, and boolean, references to other entities, and collections or maps or such types. Entities are categorized as to belong to a
class, something designed also as a structured type, defining a commonly set of properties that all members of the
class have. At program execution time, many instances of a
class will typically exist, possibly created and destroyed as needed.
Entities define a type of objects in an application domain being modeled. Each entity will have a set of fixed (possibly optional or nullable) properties, each defining an attribute or characteristic of the instances of that entity. Other support object type may as well loosely be called an Entities such as Enum(erated) and Associations. In EInnovator App Studio entities thus have a (meta-)field named type or category for distinguish these different uses of *Entities. The all set of Entities and support types used by an application is called it Data Model, and constitutes one of the most important if not the most important element to consider when implementing an application and software solution in general.
Here is a few examples domains, and possibles entities and support types used as data-model:
First step into creating an application is to define its data model. That is, the set of entities, associations, and support types together with their properties, that captures and represents the domain. For the Superhero project, we will use only one Entity named Superhero and one support Enum type named Squad.
Create entity of category Entity with name Superhero. Select as parent entity the built-in library entity EntityBase3*. This provides some basic fields to the Entity, like a unique id, a unique uuid, and creationDate.
Create another entity of category Enum with name Squad.
Open the dashboard for entity Superhero and add the properties below:
name of type
Text. Set as editor widget
Input:Text. Enable filtering, and set as filtering property
q with operator contains. Enable also the
Table Column option. While these setting are not strictly necessary, they inform view and component generation with makes it easier and faster to get the app to prototype stage.
img of type
Image:URL. Set as editor widget
Text. Se as editor widget
Textarea. Enable filtering, and set as filtering property
contains(same as for property name).
squad of type
Squad (the enum you created earlier). Set as editor widget
Select. Enable filtering for this property.
Boolean. Set as editor widget
We already already created enumerated
Squad but did not specify which values are possible. Open the dashboard for enum
Squad, and navigate to the tab
Dataset. Each enumerated can have a set of static values, each with two (and possibly other) properties, namely
displayValue. Add two values to
displayValue = Marvel
displayValue = DC
So far the data-model in very simply in the sense that there is no association between entities. To make it more realistic and interesting let’s define an additional property named
friends as a One-To-Many association between each Superhero and a set of other Superheros. Set the type of this property to
List with element type
Review the defined data-model in the the tab Data-Model > Data-Graph.
Something useful to do before moving forward is to generate a dummy dataset of instances of Entity for the purpose of later testing the app. In the dashboard of entity Supehero, tab Dataset click Generate Values. Select a instance count of 100. Confirm that 100 instance of dummy Supeheros have been created, using automatically generated value for the different properties, including name and description, and an identicon for the image.
To create an Entity press
Add New in the entity tab of the project details page.
Image below shows some an example of an Entity named
Tour being created for project