Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Use a relationship diagram to represent the information that your application will use and how it is connected.

PhixFlow's relationship diagrams are simplified version of an entity-relationship diagram diagrams (ERDsERD).  An ERD shows the relationship between an entities and their attributes. You can find a good explanation of ERDs is commonly used to show the relationships between database tables. If you are not familiar with ERDs for databases, the concepts are explained in this article: ER Diagram Tutorial in DBMS.  In PhixFlow:

...

  

Key concepts
Entity-Relationship DiagramPhixFlow Relationship DiagramExamples
A database table represents a thing or entity.

A stream represents a thing or entity.

Tip

Choose a stream name that reflects the entity it represents.


Entities:

  • Company
  • Employee
  • Department
  • Product
The column headers of a database table are the data attributes

...

.

The stream attributes are the data attributes.

Employee attributes:

  • EmployeeID 
  • Name
  • Address
  • Phone
  • Department

A stream must include one unique attribute. This is usually an identifier, so has ID or UID in the name. The unique attribute is the primary key.

Primary Keys

  • Employee stream: EmployeeID
  • Department stream: DepartmentID
When the data from one stream's primary key also appears in a different stream, it is a foreign key.

Employee attributes:

  • EmployeeID (primary key)
  • Name
  • Address
  • Phone
  • Department = DepartmentID - foreign key

Department attributes

  • DepartmentID - primary key
  • Department Name
  • Purpose
  • Team members =  list of EmployeeID's = foreign key
Tables or attributes can have various relationships to each other

Attributes can have the following relationships

  • primary key → one to one → primary key
  • primary key → one to many → foreign key
  • foreign key → many to many → foreign key
Tip

Choose a relationship name that reflects the relationship


Relationships

  • one company → employs → many employee
  • one employee → works in → one department
  • one department → makes → many products


Relationships are usually expressed as an action (verb) that follows the left-right flow of the diagram. For example:

  • either company → employs → people
  • or people→ work for → company
  • but not company → work for→ people

How to

In PhixFlow, you can create a relationship diagram

  • either by dragging in existing streams and then adding relationships
  • or, as you add streams to the diagram, you can create the streams and their attributes.

Example

For example, a simple relationship diagram can In a relationship diagram, a stream and its attributes looks like this:

Image Added

The following diagram shows some relationships between streams that represent a company and , its employees . A company has attributes, such as a name, address, turnover. In a PhixFlow stream, a company must also have an attribute that identifies the company uniquely. A company also has employees. In a relationship diagram this looks like:

Company  → employs → People
UniqueID
Name
Address
Turnover

Relationships can work both ways, for example a person "works for" the company. The relationships are usually expressed as an action (verb) that follows the left-right flow of the diagram. For example:

  • either company → employs → people
  • or people→ workfor → company
  • but not company → workfor→ people

and departments, the products it makes and the customers who buy them.

Image Added

The company "contains" many departments. An employee "works in" a department, and a department can have many team members. In this company, the department "makes" several products, which "ship to" many customers.

The green 

The relationship connects identifiers in each stream. A unique identifier in a stream is it's primary key. It uniquely identifies the row (data record) in the stream. In some cases a unique attribute from one stream is represented in another stream - this is a foreign key . It uniquely identifies a row in a different stream.

...

  • Invoice has the totals information.  has attributes: custID, total, date etc. 
  • Parent object - there are many
  • And it shows the invoice lines e.g. call breakdown  - these are not the data records for the invoice
  • Children with their own attributes: invoice id - 
  • Relationship is btwn ID field invoice - and the invoice id
  • Receipt is an invoice - individual lines - info



In PhixFlow, you can create a relationship diagram

either by dragging in existing streams and then adding relationships

or, as you add streams to the diagram, you can create the streams and their attributes.

To show the process flow of data, use a workflow diagram

...