Daisy chaining two is-a relationships? I'm currently dabbling in ER modeling and wondering if it is possible to create a chain of is-a relationships. Example:



Here I'm basically trying to model specific in-stock items available for rent which are products in general and and a product type in particular.

Would this ER model be legal and is there a better way to express such a relationship?

Thank you in advance.

Matt
The basic answer is yes, it is possible to chain is-a relationships.  In your case the relationship between Product and Product type 1 or Product type 2 is a case of subtypes.  See the questions tagged with this tag for answers to previously asked questions.   The relationship between Item and Product is, perhaps, a trivial case of subtyping, because there is only one subtype in your model (up to this point).

In the world of ER modeling, subtypes go by the terms "generalization and specialization".  You can look up these two terms for more background info. What you may find is that this feature of ER modeling was added to the ER model at some point in history, and this was known as "Extended ER"  (EER).

It's in the world of relational data modeling that things start to get really interesting.  If you are building a relational database, you are going to want to transform your ER model into a relational model before actually building the database.  In simple learning exercises, this can be done without drawing a separate diagram, just by adding details like foreign keys to the ER diagram.  In cases where there are over a hundred different relational tables and many relationships, a more formal approach may be necessary.

The basic relational model has no mechanism for inheritance.  Therefore, when you go to implement a case of generalization/specialization, you have to create tables that somehow mimic the behavior of inheritance well enough for data management purposes.  

Two design patterns are available as alternatives.  They are summarized by Martin Fowler here:

http://www.martinfowler.com/eaaCatalog/singleTableInheritance.html
http://martinfowler.com/eaaCatalog/classTableInheritance.html

Notice that in Fowler's example,  is-a relationships have been chained, where cricketer is a subtype of player and a supertype of bowler.  That's the short answer to your question.

Another design pattern that is often useful with is-a relationships is shared primary key.  Here are some questions over in SO tagged with this pattern:

https://stackoverflow.com/tags/shared-primary-key/hot

You can use shared primary key with is-a relationships even if it's not really a case of subtyping.