Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Panel
borderColor#7da054
titleColorwhite
titleBGColor#7da054
borderStylesolid
titleSections on this page

Table of Contents
indent12px
stylenone

This page is for data modellers or application designers. It explains how to draw an ERD and its properties.

This page is for any user creating an application that will be backed by data. It explains how to draw an ERD and setup its properties.

Gary Parden comments in red

Overview

Use an ERD to represent the information data that your application will use and how it is connected.

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. What Properties? If you want to check them, in the ERD, click the relationship arrow to open its properties. This will only show the name

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.

Create a New ERD

  • From the home menu, select Data → ERD.
  • From the ERD list, Select Create New from the left hand side.
  • PhixFlow opens the properties for the ERD on the right. Enter the name for your ERD and click  Insert excerpt_finish_finishnopaneltrue. In the popup window enter the name for your ERD, a useful description and click confirm.
  • PhixFlow opens a new ERD canvas on the left. The ERD has a toolbar at the top. Hover over toolbar icons to display a tooltip that explains their use.
  • TipWhen you make any changes to the ERD, remember to  Insert excerpt_save_savenopaneltrue it.

    Open an Existing ERD

    To open an existing ERD you can:

  • From the home menu, select Data → ERD and click on an ERD in the list.
  • In the repository, open your application and find Data → ERD.
  • either right-click on an ERD name and select Display.
  • or double click the ERD name to open the properties. In the properties toolbar, click the Insert excerpt_erd_erdnopaneltrue icon.

    Create a New Table

    From the canvas toolbar, drag the  Insert excerpt_streams_add_streams_addnopaneltrue icon from

    Insert excerpt
    _Banners
    _Banners
    nameERD
    nopaneltrue

    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 PointProcessAttributesFurther Topics
    I have CSV or Excel dataDrag the file onto the ERD canvas. PhixFlow automatically imports the data for you.

    In each table:

    • either set one attribute as the Primary Key and ensure all values are unique
    • or add an attribute called UID with 
      • Data Type = Integer
      • Precision = 10
    • and set one attribute to be the Display Name.
    • Creating Tables in an ERD, below.
    I have no data

    Define the tables, attributes and their relationships in the ERD.

    Later you will need to add records to the table:

    • either manually, for example, create a screen in which application users can enter data.
    • or via an Analysis Model.

    PhixFlow automatically creates each table with:

    • Primary Key called UID
    • a Name attribute, as the Display Name.
    I have data but it's not in PhixFlowUse an Analysis Model to connect to your data. PhixFlow can read the data structures to create tables.

    In each table:

    • either set one attribute as the Primary Key and ensure all values are unique
    • or add an attribute called UID with 
      • Data Type = Integer
      • Precision = 10
      • Tick Primary Key
    • and set one attribute to be the Display Name.
    I have tables in PhixFlow alreadyIn the ERD toolbar, click
    Insert excerpt
    _tables
    _tables
    nopaneltrue
     to display a list of all the tables. Drag tables into the ERD and then add the relationships.


    Note

    Insert excerpt
    _uid
    _uid
    nopaneltrue

    Creating Tables in an ERD

    Drag and Drop Import: Create a New Table using Excel or CSV
    Anchor
    Excel
    Excel

    1. Drag a CSV or Excel file directly onto an ERD canvas.
    2. 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
    NewTable
    NewTable

    1. Drag 
      Insert excerpt
      _tables
      _tables
      nopaneltrue
       from the toolbar into the diagram.
    2. In the
    pop-up
    1. popup, enter
    its name, for example "Customer" and click Insert excerpt_dialog_finish_dialog_finishnopaneltrue.
  • PhixFlow adds a box to represent the table to the ERD, and opens the properties tab for it. The table is created with one two attributes: UID and Name. The UID is set as the primary key and the Name is set as the display attribute for the table. We might want to make reference to how this is used?
  • Optionally, rename the primary key. 
  • Click on the UID line in the table. PhixFlow opens the attribute properties.
  • In the Name field, change the name. We recommend that UID or ID is part of the name to indicate this attribute is the unique identifier. NB: ID is a reserved word and cannot be used on its own.
  • Insert excerpt_dialog_finish_dialog_finishnopaneltrue the attribute properties
    1. a name that reflects what the table will represent. For example, Customer.
    2. 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.
    1. To add attributes to the table:
      1. In the table, click 
        Insert excerpt
        _
    add
      1. new
        _
    add
      1. new
        nopaneltrue
        . PhixFlow opens the attribute properties
    .Enter
      1. on the
    Name, Type and Length for the data; see Stream Attributes. Attributes are created
      1. right, with the default
    of a 50 character string. It's important to change this for other types of data, for example, numerical or date/time data. We make no reference to the current table  relation button?
      1. settings of:
        • Type = String
        • Length = 50 characters.
      2. 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
      3. Click 
        Insert excerpt
        _
    dialog_
      1. finish
        _
    dialog_
      1. finish
        nopaneltrue
     the
      1.  to save the attribute properties.
    1. PhixFlow adds the attribute to
    the table
    1. the table in the ERD.

    Add an Existing Table

    From
    1. In the
    canvas toolbar, Click the Stream List icon. Tables icon. Should this be an icon?
    1. toolbar, click 
      Insert excerpt
      _tables
      _tables
      nopaneltrue
      .
    2. PhixFlow filters the repository to show the list of tables available in this application.
    3. Drag a table from the repository
    into 
    1. onto the ERD canvas. 

    Image Added

    Creating

    Create Relationships

    Between Attributes

    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

    between attributes in different tables, click

    :

    1. Click-drag from one attribute name to another.
     

  • Click on the source attribute.
  • Drag to the destination attribute.
    1. One of the attributes must be a primary key.
    2. PhixFlow highlights the attribute when your mouse pointer is over it.
    This may be offset from the end of the relationship arrow. Not sure what the last sentence means? Sounds like a bug?This is a bug
    1.  
    2. When the destination attribute is highlighted, release the click.

    Image Added

    Relationships

    Enter

    See the

    name

    table below for the

    relationship. I believe the name is provided automatically, but the user can change it. Please refer to the Adobe XD file. I understood that we were going to hide or drop the relationship names as they were redundant
  • PhixFlow
    • adds the relationship arrow
    • opens its properties; see Relationships It does not
    • sets the destination attribute to be a foreign key. Only if you have dragged a primary key, but we can drag a non-primary key onto a primary key. I think this is a bug - it should only be possible to connect primary to foreign key, and I'm not happy with converting non-key to foreign-key because it currently ignores type mismatches.
  • 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. All tables have a primary key. 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 util you have added/nominated a primary key.
    • If the source table already has a primary key, it uses it as the source attribute. I don't understand this. Not sure its relevant due to the comment above.

    Do we need to explain the many-to-one and the one-to-many and that m:n is not supported at this time?

    Properties

    I cant add a direct comment but he section below relates to the properties toolbar? Should it say tab? it links later to the tabs section.

    Insert excerpt_standard_settings_standard_settingsnopaneltrue

    Basic Settings

    FieldDescriptionNameEnter the name for the ERD. When you press Return or click Save a new properties tab, is there a word missing here? PhixFlow opens an empty diagram in the workspace on the left.

    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

    OptionDescription
    ERD Options Create
    Table CreateDrag this icon onto the canvas to create a table.ScreenCreates a new screen for the selected table.ListTablesClick to see a list available tables.ScreensClick to see a list available screens.
     Canvas
    SaveSave changes to the diagram. If there is no save icon, PhixFlow is saving changes automatically.Refresh

    Redraw the current diagram. If there have been recent changes to the diagram properties, these will be shown. 

    Refresh the ERD to display recent changes to the diagram.

    HelpSlide open the help panel on the right. there is no help buttonPropertiesOpen the properties for the current 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.

    Back

    For screen layout, move a component back.

    ForwardFor screen layout, bring a component forward.

    Align options

    Click/hover to show Shows all 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

    For at least 3 items, adjust so they have equal space between them, left to right. Distributes the selected items evenly between the left and right outer most items. Works for 3 items or more.

    Distribute vertically

    For at least 3 items, adjust so they have equal space between them, from top to bottom. Distributes the selected items evenly between the top and bottom outer most items. Works for 3 items or more.

    Context Menu

    In the ERD, right-click a table to show the context menu.

    OptionDescription

    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

    This table has one-to-many relationships with other tables.

    List the tables this one relates out to (one-to-many).  

    Delete everywhere

    Delete the selected item(s) from the ERD repository and from everywhere it is used

    relationships that can be created between attributes:

    Drag fromRelationship
    Table 1Table 2
    primary keyattribute

    1:Many

    Table1.primarykey → Table2.attribute

    attributeprimary key

    1:Many

    Table2.primarykey → Table1.attribute


    attributeattribute

    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

    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
      nopaneltrue
    • Insert excerpt
      _rel_out
      _rel_out
      nopaneltrue

    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
    _remove
    _remove
    nopaneltrue
    from the diagram.

    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
      nopaneltrue
    • tables: in the ERD, click on the table header or right-click to open the popup menu and select 
      Insert excerpt
      _edit
      _edit
      nopaneltrue
    • attributes: in the table, click on an attribute

    PhixFlow opens the properties pane on the right.