I\'m trying to create a database that contains a list of equipment. All of the equipment will have certain common attributes (such as manufacturer, model #, serial #, etc.), the
Alternatives 1, 2, and 3 are outlined by Martin Fowler in one of his books, and on his website.
Single Table Inheritance (option 1)
Concrete Table Inheritance (option 2, sort of)
Class Table inheritance (option 3)
My preference is option 3. Each one has its place in the general scheme of things.
EAV accomodates adding new attributes on the fly very well. But when it comes time to turn the data into useful information, an EAV database can be a nightmare.
I have a longer answer, which I will post on demand.