More on Many-to-Many Relationships
Unlike the object model, the traditional relational model does not support many-to-many relationships. In this XML model for example, a cardigan sweater (men's, size medium) could refer to many color swatches. Inversely, a given color swatch could refer to many different types of sweaters of various sizes. This is a many-to-many relationship.
In the relational model, these relationships are represented using intersection entities. This figure illustrates the schema with the intersection entity of Size Color.
These intersection entities, if they are left in the model in this way, will require additional joins that slow down the mapping process to the XML model. One approach to this situation is to "de-normalize" these intersection entities by restricting the number of colors that a catalog item can have. The outcome of such an approach might be to increase maintenance costs; the model no longer accurately represents the real world, which might require a change in the future. Data changes such as these can also have ripple effects on the code.
More on the general topic: Many-to-Many Relationships