Relationships

Previous Next

A relationship is a collection of implementations that govern how data from 2 table instances are connected.

For example, a relationship governing how Orders (table instance 1) are connected to Customers (table instance 2) could implement that:

Orders can only be made by customers that are registered in the application.

A given order must be made by exactly 1 customer.

A given customer can make multiple orders.

To be registered in the application, a customer must make at least 1 order.

If a customer gets a new customer ID, that change must cascade to the customer IDs in all orders made by that customer.

A customer may be deleted only if there are no (remaining) orders made by that customer.

If your application uses USoft-generated UIs, USoft Definer will automatically create useful navigation paths between connected tables (from a Customer to "related data" such as all the Orders made by that Customer; from a new Order to a "lookup" list of customers from which the ordering Customer may be selected). If you defined that the relationship is mandatory (a Customer must place at least one Order), the UI will automatically present child data in the same window or page as the parent data.

Good relationship design is crucial to the success of a USoft application. Relationships are not only the primary means of connecting data in different tables but they also represent conceptual links that shape your business model. It is only by creating well-chosen relationships that you will end up with tables, columns, logical views and constraints that optimally represent the business operations supported by your application, and that make large applications understandable and maintainable in the long run.

 

See Next

Good Relationship Design

 

See Also

Domains

Tables

Columns

Logical Views

Supertypes and Subtypes