Fig. 3.14 Deriving a M:N (many-many) relationship.
The two questions you have to ask to correctly derive the degree of this relationship (and the answers) are:
Question 1: One customer purchased how many product types? Answer: One or more.
Question 2: One product type was purchased by how many customers? Answer: Zero or more.
Note that the entity type has been called PRODUCT TYPE rather than PRODUCT which might mean an individual piece that the customer has bought. In that case the cardinality of 'was_purchased_by' would be one not many because an individual piece can of course only go to one customer. This point is another common source of error: the tendency to call one item (e.g. an individual 4" paintbrush) a product and the whole product type (or 'line') (e.g. the 4" paintbrush product type) a product. You should make the meaning clear from the name you give the entity type.
We have assumed here that every customer on the database has purchased at least one product; hence the mandatory optionality of `purchased'. If this were not true in the situation under study then a zero would appear instead. The zero optionality of 'was_purchased_by' is due to our assumption that a product type might as yet have had no purchases at all.