Chapter 8

Universal Antipatterns

An antipattern is a characterization of a common software flaw. When you find an antipattern, substitute the correction. Universal antipatterns are antipatterns that you should avoid for all applications.

8.1 Symmetric Relationship Antipattern

8.1.1 Observation

An entity type has a self relationship with the same multiplicity and role names on each end. Typically this is a many-to-many self relationship. Symmetric relationships can be troublesome for programming and are always troublesome for relational databases.

8.1.2 Exceptions

There are no exceptions for relational database designs. Avoid symmetric relationships.

8.1.3 Resolution

Promote the relationship to an entity type in its own right. The improved model ...

Get Patterns of Data Modeling now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.