One-to-one relationships allow you to extend an existing entity with additional information that is not yet in the database model.
A common scenario is when you want to extend an entity with more attributes and it's not possible to add them to it. This happens when you are using a referenced entity from a different module, and adding more attributes don't make sense in the referenced module. In this case, you create an entity in your module to store the additional information.
To create a one-to-one relationship to an existing entity:
Create an Entity;
Idattribute to be the identifier of the entity you want to extend;
Add the attributes.
The GoOutWeb application allows to rate and review places like restaurants and hotels. The application saves some end-users information like the email, the phone number or Twitter account.
Since we are using the
User system entity to store the end-users it is not possible to add attributes to it. We have to create an additional entity to store more information about the user. To do so, follow these steps:
- In the Data tab, open the GoOutWebDataModel entity diagram;
- If not present yet, drag the
Usersystem entity to the diagram from the Data tab;
- Right-click on the diagram canvas and select "Add Entity";
- Name it
OutSystems sets the data type to
User Identifierbased on the name given. Since this data type is the identifier of the
Userentity, OutSystems creates a connection between the created entity
Add the following attributes to the
Photo, Binary Data type.
As a result, you have the
Profile entity extending the
User entity. Every time a
Profile record is created its identifier should have the value of the
User record identifier it belongs to.