This page is for application designers who want define the data that will back the application. It explains how to draw an ERD and setup its properties.
Overview
Use an ERD to define the structure of the data that backs your application.
As you draw the diagram, PhixFlow creates table, attribute and relationship items. You can find:
- tables in the repository Data → Tables category.
- attributes listed in the table's properties.
PhixFlow sets the properties for a relationship item automatically. If you want to check them, in the ERD, click the relationship arrow to open its properties.
PhixFlow automatically saves any changes you make to the ERD. This is no longer true, the save will work the same way as an Analysis model.
For ERD concepts, see Understanding ERDs.
Panel | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
|
Create a New ERD
- From the home menu, select Data.
- PhixFlow displays the list of ERDs. Select Create New from the left hand side.
- In the pop-up, enter a name for your ERD, and a description then click confirm ??icon.
- PhixFlow opens a new ERD canvas on the left with a toolbar at the top. Hover your mouse pointer over toolbar icons to display a tooltip.
Open an Existing ERD
To open an existing ERD you can:
Create a New Table
From the canvas toolbar, drag theInsert excerpt | ||||||||
---|---|---|---|---|---|---|---|---|
|
Overview
For an introduction to ERD concepts and why ERDs are important, see Entity Relationship Diagrams.
The process for defining data structures in an ERD depends on whether or not you have already created tables in PhixFlow. The following table summarises the different ways you can add data to an ERD, depending on your starting point:
Creating and Importing Data
Starting Point | Process | Attributes | Further Topics | ||||||
---|---|---|---|---|---|---|---|---|---|
I have CSV or Excel data | Drag the file onto the ERD canvas. PhixFlow automatically imports the data for you. | In each table:
|
| ||||||
I have no data | Define the tables, attributes and their relationships in the ERD. Later you will need to add records to the table:
| PhixFlow automatically creates each table with:
|
| ||||||
I have data but it's not in PhixFlow | Use an Analysis Model to connect to your data. PhixFlow can read the data structures to create tables. | In each table:
| |||||||
I have tables in PhixFlow already | In the ERD toolbar, click
|
Note | ||||||||
---|---|---|---|---|---|---|---|---|
|
Creating Tables in an ERD
Drag and Drop Import: Create a New Table using Excel or CSV
Anchor | ||||
---|---|---|---|---|
|
- Drag a CSV or Excel file directly onto an ERD canvas.
- PhixFlow creates a table automatically based on the information in the file.
This topic is also covered in the ERD Fundamentals video course; see Entity Relationship Diagrams.
Create a New Table
Anchor | ||||
---|---|---|---|---|
|
- Drag
from the toolbar into the diagram.Insert excerpt _tables _tables nopanel true - In the
- popup, enter
- a name that reflects what the table will represent. For example,
Customer
. - PhixFlow opens the properties for the new table and adds the table to the canvas.
The table header displays its name. PhixFlow automatically adds two attributes:
- UID, a primary key that is a unique identifier for each record.
- Name, a display name that is shown instead of the numeric UID in a view or form.
- To add attributes to the table:
- In the table, click
Insert excerpt _
- In the table, click
new _
. PhixFlow opens the attribute propertiesnew nopanel true
- on the
- right, with the default
- settings of:
- Type = String
- Length = 50 characters.
- In the properties, enter the Name and select appropriate type properties, such as Date or Integer; see Attribute. The following data types have additional properties:
- For String, add Length
- For Integer, add Precision
- For Decimal, add Significant Figures and Decimal Places
- Click
Insert excerpt
- settings of:
_finish
_finish nopanel true
- to save the attribute properties.
- PhixFlow adds the attribute to
- the table in the ERD.
Add an Existing Table
- In the
- toolbar, click
.Insert excerpt _tables _tables nopanel true - PhixFlow filters the repository to show the list of tables available in this application.
- Drag a table from the repository onto the ERD canvas.
Create Relationships
The purpose of a relationship is to show that an attribute in one table contains the same data as the same as a primary key in another table. I dont understand this? My understanding is that it allows us to display data from a different table without having to duplicate the data in multiple places? You are aiming to: Not sure how this helps?
- relate a primary key with a non-primary attribute. do we want to make refence to a foreign key?
- ensure related attributes have the same data properties.
In an ERD you can create a one-to-many relationship between a primary key in one table with an attribute in another table. For relationship concepts, see Entity Relationship Diagrams.
To create a relationship:
- Click-drag from one attribute name to another.
- One of the attributes must be a primary key.
- PhixFlow highlights the attribute when your mouse pointer is over it.
- When the destination attribute is highlighted, release the click.
If you try to create a relationship between two non-primary attributes, PhixFlow assumes the source attribute is the primary key. We don't support this as it's considered a many-to-many.
- If the source table does not have a primary key, it sets the source attribute to be primary. This isn't true if you've defined a stream elsewhere, but I'm inclined to think that you shouldn't be allowed to add relationships until you have added/nominated a primary key.
- If the source table already has a primary key, it uses it as the source attribute.
Do we need to explain the many-to-one and the one-to-many and that m:n is not supported at this time?
If you want to highlight the relationships that affect a table, click the table to select it. The following screenshot shows the Teacher table is selected.
- Blue lines indicate relationships to a foreign key in the selected table
- Green lines indicate relationships from the primary key in the selected table.
Context menu
To see the context menu for a table:
in the table header, clickConfigure → Table properties
Hide Attributes → Hide attributes
Remove this item from the Diagram → Remove from ERD
Permanently Delete → Delete everywhere
Properties
I cant add a direct comment but the section below relates to the properties toolbar? Should it say tab? it links later to the tabs section.
Basic Settings
ERD Context Menu and Toolbar
In an ERD, you can hover your mouse pointer over the toolbar or context menu options to see what they are for.
We have a more menu and make no reference to it? I am note sure we have a right click menu.
Toolbar
You can find the toolbar at the top of the canvas.
This should be to record what goes into tooltips
Create
List
Canvas
Redraw the ERD to display recent changes to the diagram.
Zoom out
Zoom out to see more of the diagram, with smaller text.
Zoom in
Zoom in to see a smaller area of the diagram, with larger text.
Ungroup
Select a grouped set of items and then click to ungroup them.
Select several items then click to group them together.
Group
Select several items then click to group them together.
For screen layout, move a component back.
Align options
Click/hover to show all the options for aligning items on the canvas.
Align Grid
Organise selected items into a grid pattern.
Align left
Align selected items to the left.
Align right
Align selected items to the right.
Align top
Align selected objects to the top.
Align bottom
Align selected objects to the bottom.
Distribute horizontally
Distribute vertically
Context Menu
In the ERD, right-click a table to show the context menu.
Configure Table
Open the properties for this table.
Remove from Diagram
Remove the selected item(s) from the diagram.
Show all tables using this table
Lists the tables with a relationship into this one (many-to-one).
Show all tables related tables
Show all tables used by this table
List the tables this one relates out to (one-to-many).
Delete everywhere
Relationships
See the table below for the relationships that can be created between attributes:
Drag from | Relationship | |
---|---|---|
Table 1 | Table 2 | |
primary key | attribute | 1:Many Table1.primarykey → Table2.attribute |
attribute | primary key | 1:Many Table2.primarykey → Table1.attribute |
attribute | attribute | If Table1 has no primary key, PhixFlow makes the Table1.attribute the primary key. If Table1 has a primary key, the relationship is from Table1.primarykey instead of from the attribute being dragged. |
Relationship Restrictions
PhixFlow cannot create a relationship between your selected attributes if your selected foreign key attribute:
- is already a foreign key to a different primary key.
- has a different Data Type and type properties to the primary key.
If this happens, you can:
- create a new attribute to be the foreign key.
- change the foreign key attributes to match the primary key, provided there is no data in the table.
- create the relationship with a different attribute.
To change the data type properties, in the ERD, click on an attribute to open its properties.
Show Relationships From Other ERDs Anchor erd-view erd-view
erd-view | |
erd-view |
Tip |
---|
If you have created several ERDs to define the data structure that your application requires, then each ERD is a view onto a part of the full data structure. |
If a table appears on more than one ERD it may have relationships with tables that are not visible in your current ERD. To see other related tables, right-click a table to show the popup menu and select:
Insert excerpt _rel_in _rel_in nopanel true Insert excerpt _rel_out _rel_out nopanel true
PhixFlow adds the related tables to your ERD.
To remove the related tables from your ERD, right click on each one and click
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
Saving ERDs
Any changes you make on the ERD canvas are automatically saved.
Accessing Properties
To access properties for:
- the ERD: in the canvas toolbar click
Insert excerpt _property_settings _property_settings nopanel true - tables: in the ERD, click on the table header or right-click to open the popup menu and select
Insert excerpt _edit _edit nopanel true - attributes: in the table, click on an attribute
PhixFlow opens the properties pane on the right.