A further constraint type that may be required in practice is that an entity of type A may legally be related to any n entities from a selection of m entity types.
The suggestion being made here is that current methods for drawing entity relationship diagrams could be extended to allow these types of relationship constraints to be shown on the diagram.
3.6.4 Redundant Relationship Types
In Fig. 3.17 there is a 'received' relationship type between CUSTOMER and INVOICE and an 'obtained' relationship type between INVOICE and PAYMENT. It is possible via 'received' to find which invoices have been received by a given customer. It is possible to find the customer an invoice was sent to via the 'was_sent_to' relationship type (the inverse of `received'). Using the 'obtained' relationship type it is possible to find the payments that a given invoice has received and via its inverse 'was_posted_to', the invoice that a payment was posted to. Using the composition of 'received' and 'obtained' (that is, using one relationship type followed by the other), it is possible to find all the payments that a given customer has made. By navigating from CUSTOMER to INVOICE and thence to PAYMENT this can be done.