views:

533

answers:

5

Hi,

My question is regarding Inheritance modeling in Relational Database Systems. I have canonical data model and in that I have some fields related to pricing of product inheriting certain attributes from product table and I want to model this inheritance in MySQL relational database and so,

"How can we do Inheritance Modeling in Relational Databases ?"

Thanks.

+1  A: 

Look at these articles for some ideas:

Mapping Objects to Relational Databases

Inheritance in O/R Mapping

Todd Stout
+2  A: 

Relational databases don't deal with objects (and, thus, inheritance) - they deal with relationships. What you're really asking is how to map your object structure to your database - and the answer to that is "it depends on your ORM layer".

Take a look at Mapping Objects to Relational Databases: O/R Mapping In Detail article for some details. If you tell us what software stack you're using, you'll likely get a more to-the-point answer.

ChssPly76
This may sound pedantic but I don't think it's accurate to say that relational databases deals with relationships, but rather they are called such because they deal with relations as defined here:http://en.wikipedia.org/wiki/Relation_(database)
Ralph Shillington
+8  A: 

Martin Fowler discusses this extensively in his book Patterns of Enterprise Application Architecture book. Get this book and look into:

  1. Single Table Inheritance
  2. Class Table Inheritance
  3. Concrete Table Inheritance

The Website should give you some idea. You might also want to read the section on inheritance mappers. Each of the different approaches have their pros and cons so choose wisely.

RichardOD
This answer involves buying a book to be completely realized. Any chance you could add similar web resources?
David Reis
A: 

If you just want to look at some web articles instead of reading a book, you can find some good articles by Googling on:

Generalization Specialization Relational Modeling

The gen-spec pattern covers a lot of the same ground that inheritance does in OOP environments.

If you google on

Generalization Specialization Object Modeling

you'll get a whole new batch of articles, most of which mention inheritance explicitly.

Walter Mitty
+1  A: 

Chapter 6 of "Practical Issues in Database Management" is probably an interesting read for you.

As are all the other chapters, probably, but those don't relate directly to your question.

Erwin Smout