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.Insert excerpt | ||||||||
---|---|---|---|---|---|---|---|---|
|
Overview
For an introduction to ERD concepts and why ERDs are important, see
Think about the structure here Make it easier to track through. We need to be mindful "if you've got data"
Bring in an excel file creates the data structure (creates the table) but that's no the same as running analysis and then loading the data (analysis pulls in the records)
The things you need to consider when defining an ERD dependThe process for defining data structures in an ERD depends on whether or not you have already
- Make sure people are clear that PhixFlow can make this is you already have something
- You have got data
- You've got data NOT in PhixFlow
- bring it in via a model
- OR if its in Excel you can bring it in and create the model in 1 step
- You've got data in PhixFlow (via model)
If you have already loaded data (link to analysis model) (both table and records), the tables are listed in the repository. I feel there is a clash here against the statement earlier "it has not been loaded yet" as we can load a file without pulling data into PhixFlow. This then sets up the table structure for us.- Drag tables from the repository Data → Tables into the ERD canvas. Again we want to avoid the respository we have the show tables option on an ERD.
- Set the primary key:
- Either create an attribute called UID that PhixFlow will populate with unique values for each record
- Or select an attribute to be the primary key. You will need to ensure this contains unique values.
- If you add an excel file we have discussed presenting users with the option to select a Primary Key and Display Name. There is a flow that covers this see 4.10.
- Add relationships
- Should we state that users need to drag and drop to create a relationship? Dragging and dropping onto an attribute creates the relationship. Dragging and dropping onto the header bar creates the corresponding attribute and relationship.
- Primary key and foreign key attributes must have the same data Type.
- If you do not have any data for your application:
- Create tables, attributes and relationships in the ERD.
- New tables have an attribute called UID, which is the primary key. We also create a Name attribute that is set to Display Name
- Make sure the data Type is correct for the data that will populate each attribute. we haven't introduced the concept of creating attributes at this point, should we discuss setting a value?
- PhixFlow adds table items to the repository. Attributes are listed within the Table properties. Should we say this as we are trying to avoid people browsing the repository, and we have the view table button on the in context menu.
- Relationships are not listed in the repository. To see relationship properties, in the ERD, click the relationship arrow. should we go with the positive view point and say relationship details are only available on the ERD?
- Add records to your tables:
- either manually e.g. create a screen to allow users to enter data.
- or from an external source, e.g. Excel file, database etc. we need to consider what to tell people, as excel can be added directly but databases et al need an analysis model to back them. lets discuss our message. Also we say add records from an external source and have no information about that?
- Create tables, attributes and relationships in the ERD.
- If you have already loaded data, the tables are listed in the repository. I feel there is a clash here against the statement earlier "it has not been loaded yet" as we can load a file without pulling data into PhixFlow. This then sets up the table structure for us.
- Drag tables from the repository Data → Tables into the ERD canvas. Again we want to avoid the respository we have the show tables option on an ERD.
- Set the primary key:
- Either create an attribute called UID that PhixFlow will populate with unique values for each record
- Or select an attribute to be the primary key. You will need to ensure this contains unique values.
- If you add an excel file we have discussed presenting users with the option to select a Primary Key and Display Name. There is a flow that covers this see 4.10.
- Add relationships
- Should we state that users need to drag and drop to create a relationship? Dragging and dropping onto an attribute creates the relationship. Dragging and dropping onto the header bar creates the corresponding attribute and relationship.
- Primary key and foreign key attributes must have the same data Type.
Panel | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
|
How to Define an ERD
Open an Existing ERD
Create a New ERD
Add an Existing Table
- In the toolbar, click Table ListThe icon is called tables and the icon here is wrong as it includes the category name. Review the context menus for full details and please take the icons from the Icon repository directory on sharepoint.
- 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 a New Table
Drag Table Createcreated 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
. PhixFlow opens the attribute properties on the right, with the default settings of:Insert excerpt _new _new nopanel true - Type = String
- Length = 50 characters.
- In the properties, enter the Name
- In the table, click
PhixFlow creates attributes with a Type or String and Length of 50 characters. Remember to select
- 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 _
- , such as Date or Integer; see Attribute. The following data types have additional properties:
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
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
To create a relationship
title | More detail |
---|
:
- 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.
Rearranging ERDs
To move tables around in the ERD, click on the header and drag the table. There are also Align options in the toolbar that you can use to line up or distribute selected tables.
To select multiple tables, draw a square around them.
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.
- Should we add the concept of 1:many and many:1 here?
If a table has a lot of attributes that you do not need to see you can collapse the list to show only the table's primary and foreign keys.
- either right-click on a table and select Hide attributes or Show attributes
- or double-click on the table header.
Properties
Basic Settings
The name for the ERD.
How PhixFlow Manages Different Relationship Drags
Foreign key type
If PhixFlow does any automatic changing of types, then record them here
table1.primarykey → table2.attribute
one → many
Table has no records:
Table has records: 21052021 PhixFlow creates relationships with types that don't match
table2.primarykey → table1.attribute
one → many
one → one
if table1 has no primary key: PhixFlow makes the table1.attribute the primary key
if table 1 has a primary key: relationship is from table1.primarykey instead of from table1.attribute.
ERD Toolbar we haven't defined this in our terminology document but we have been calling it the In Context Toolbar to ensure there is no ambiguity with any other options.
The toolbar is at the top of the canvas. Hover your mouse pointer over the toolbar to see a tooltip.
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
Table Pop-up Menu
You can access more options in a pop-up menu:
in the table header, clickConfigure Table
Open the properties for this table.
Remove this item from the Diagram
Remove the selected item(s) from the diagram.
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.