Overview
Entity Relationship Diagrams (ERDs) define the structure of the data in your application. "Entities" are displayed as tables and represent the "things" in the world that you want to show as data.
Opening and Creating ERDs
- On your application's home page, click ERD to list the existing ERDs.
- Alternatively, click ERD from the header bar.
- To create a new ERD, click the Add New button.
- To open an existing ERD, double-click it.
ERD Layout
Here is a simplified view of the ERD:
- Toolbar: This contains ERD-specific options to add data to the ERD and move tables on the canvas.
- Repository: On the toolbar, click Table to list all tables in the Repository on the right. These can be dragged and dropped onto the canvas.
- Canvas: This is where you create and modify your ERD.
- Table: This is represented as a box, containing a list of all of the attributes within the data and their associated data type (e.g. string).
- Relationship: This is represented as a line connecting the tables.
- Options: View the data in the table by clicking or show all table options by clicking .
Tables
A table is where your data is stored for your application.
Attributes
Attributes represent the different pieces of data recorded in the table, and can be thought of as column headers on a spreadsheet.
- Attributes are configured with a data type (e.g. string) and properties. To change these, click on the attribute's name. See Understanding Data Types.
Primary Keys
Primary Keys are special attributes which uniquely identify each record.
When you create a new table, PhixFlow adds an attribute called UID and configures it as follows:
- the table's Primary Key
- an integer
- automatically creates a unique number for every record in the table
- If your data already has a unique attribute, you can use this as the Primary Key by right-clicking and selecting Make Primary Key.
- On the example image above, the Teacher table has the attribute UID (Unique IDentifier) as the Primary Key. This is because teachers may have the same first and/or surname, so these attributes cannot be guaranteed to be unique and therefore cannot be a Primary Key.
Display Names
Display Names are special attributes which are displayed instead of a Primary Key, as they make more sense to a human.
- When you create a new table, PhixFlow adds an attribute called Name and configures it as the Display Name.
- This is then shown in place of the Primary Key when displayed on a screen. Display Names do not need to be unique and should be user-friendly.
- If your data already has an attribute you want to use as the Display Name, right-click it and select Make Display Name.
Foreign Keys
Foreign Keys are attributes in one table that relate to the Primary Key in another table.
- Foreign Keys must have the same data type and properties as the corresponding Primary Key. For example, both must be strings of the same length.
When a relationship is created by dragging a Primary Key from one table onto the attribute of another table, PhixFlow sets this attribute to be a Foreign Key.
Validation
Validation is applied to table attributes and determines the criteria an attribute must satisfy in order to be considered valid. For example, the attribute is mandatory, must contain a minimum number of characters or must adhere to a specific pattern. Validation added to a table will be applied wherever the attribute is updated, such as when saving data on an input screen. See Table Attribute Validation.
Indexing
Indexes are applied to attributes on a table and help improve the speed of data retrieval when handling large data sets. Users do not see the indexes, they are used internally by PhixFlow. Updating a table with indexes takes more time than one without, as the indexes also need to be updated. Therefore, indexes should only be created on attributes that will be frequently searched against. See Indexed on Attribute.
Relationships Between Tables
Tables in PhixFlow are relational, which means that information in one table can be related to information in another table. Data can then be accessed in many different tables without requiring duplication.
A line connects the Primary Key of one table to a Foreign Key in a different table, and represents the relationship. See Relationship.
One-to-Many and Many-to-One
The relationship line between a Primary Key and Foreign Key represents a one-to-many relationship. In the below example, one teacher runs many courses.
A many-to-one relationship is implied when you read a relationship in the opposite direction. In the below example, a department has many teachers, and several teachers work for one department.
Many-to-Many
Many-to-many relationship can be supported with an intermediate table.
Working in an ERD
You can add tables in an ERD manually. See Adding Content to an ERD.
- Create a new table by dragging Table from the toolbar onto the canvas.
- Add an Excel spreadsheet by dragging it onto the canvas. PhixFlow imports the data and creates a new table.
- Add an existing table by clicking Table in the toolbar. The available tables are listed in the Repository and can be dragged onto the canvas. See 2. Importing Data.
View Table Data
Select from the table header. Different views can be created, see Creating Dashboards and Reports.
Create a Screen from a Table
Select from the table options and click Create Screen. See Creating a Screen from an ERD Table.
Multiple ERDs
The same table can appear on multiple ERDs.