Skip to main content
deleted 141 characters in body
Source Link
Walter Mitty
  • 4.4k
  • 21
  • 22

I'm going to suggest several lines of research to you. Most of what you find is going to confirm the three design choices you highlight in the question.

If you look up "class table inheritance", you will get numerous papers that cover table design for supeclasssuperclass/subclass situations. My favorite write up is Martin Fowler's. You already seem to know most of what these papers will cover.

If you look up "specialization/generalization", you will get several writeups that address how the ER model was extended to cover the case that we call superclass/subclass case. The ER model doesn't help you with design issues, because the ER model is intended to be design agnostic. Many people come up with a relational data model, then depict it with an ER diagram. That's misleading in this context.

And, of course, the object model has inheritance.

If you lookup "shared primary key" , you will get some writeups that mostly confirm the design choices you outlined in the question.

The Stackoverflow area has three tags that group relevant questions. They are named Single-table-inheritance, Class-table-inheritance, and Shared-primary-key. Tags have a "Learn more" feature that will show youcover using a writeup about the tag subject matter. This can helpforeign key as well. This area does not have these tagsa primary key.

Your best bet is probably to use Postgress specific features intended to address superclass/subclass cases, provided you can get around the limitations of your ORM tools. Other answers have addressed this approach.

If you look up "class table inheritance", you will get numerous papers that cover table design for supeclass/subclass situations. My favorite write up is Martin Fowler's. You already seem to know most of what these papers will cover.

If you look up "specialization/generalization", you will get several writeups that address how the ER model was extended to cover the case that we call superclass/subclass. The ER model doesn't help you with design issues, because the ER model is intended to be design agnostic.

And, of course, the object model has inheritance.

If you lookup "shared primary key" , you will get some writeups that mostly confirm the design choices you outlined in the question.

The Stackoverflow area has three tags that group relevant questions. They are named Single-table-inheritance, Class-table-inheritance, and Shared-primary-key. Tags have a "Learn more" feature that will show you a writeup about the tag subject matter. This can help as well. This area does not have these tags.

Your best bet is probably to use Postgress specific features intended to address superclass/subclass cases, provided you can get around the limitations of your ORM tools. Other answers have addressed this approach.

I'm going to suggest several lines of research to you. Most of what you find is going to confirm the three design choices you highlight in the question.

If you look up "class table inheritance", you will get numerous papers that cover table design for superclass/subclass situations. My favorite write up is Martin Fowler's.

If you look up "specialization/generalization", you will get several writeups that address how the ER model was extended to cover the superclass/subclass case. The ER model doesn't help you with design issues, because the ER model is intended to be design agnostic. Many people come up with a relational data model, then depict it with an ER diagram. That's misleading in this context.

And, of course, the object model has inheritance.

If you lookup "shared primary key" , you will get some writeups that cover using a foreign key as a primary key.

Your best bet is probably to use Postgress specific features intended to address superclass/subclass cases, provided you can get around the limitations of your ORM tools. Other answers have addressed this approach.

added 535 characters in body
Source Link
Walter Mitty
  • 4.4k
  • 21
  • 22

If you look up "class table inheritance", you will get numerous papers that cover the same ground that you have outlined in your questiontable design for supeclass/subclass situations. My favorite write up is Martin Fowler's. If You already seem to know most of what these papers will cover.

If you look up "specialization/generalization", you will get several writeups that address how the ER model was extended to cover the case that we call superclass/subclass. The ER model doesn't help you with design issues, because the ER model is intended to be design agnostic.
And

And, of course, the object model has inheritance. Your

If you lookup "shared primary key" , you will get some writeups that mostly confirm the design choices you outlined in the question.

The Stackoverflow area has three tags that group relevant questions. They are named Single-table-inheritance, Class-table-inheritance, and Shared-primary-key. Tags have a "Learn more" feature that will show you a writeup about the tag subject matter. This can help as well. This area does not have these tags.

Your best bet is probably to use Postgress specific features intended to address superclass/subclass cases, provided you can get around the limitations of your ORM tools. Other answers have addressed this approach.

If you look up "class table inheritance", you will get numerous papers that cover the same ground that you have outlined in your question. My favorite write up is Martin Fowler's. If you look up "specialization/generalization", you will get several writeups that address how the ER model was extended to cover the case that we call superclass/subclass. The ER model doesn't help you with design issues, because the ER model is intended to be design agnostic.
And, of course, the object model has inheritance. Your best bet is probably to use Postgress specific features intended to address superclass/subclass cases, provided you can get around the limitations of your ORM tools. Other answers have addressed this approach.

If you look up "class table inheritance", you will get numerous papers that cover table design for supeclass/subclass situations. My favorite write up is Martin Fowler's. You already seem to know most of what these papers will cover.

If you look up "specialization/generalization", you will get several writeups that address how the ER model was extended to cover the case that we call superclass/subclass. The ER model doesn't help you with design issues, because the ER model is intended to be design agnostic.

And, of course, the object model has inheritance.

If you lookup "shared primary key" , you will get some writeups that mostly confirm the design choices you outlined in the question.

The Stackoverflow area has three tags that group relevant questions. They are named Single-table-inheritance, Class-table-inheritance, and Shared-primary-key. Tags have a "Learn more" feature that will show you a writeup about the tag subject matter. This can help as well. This area does not have these tags.

Your best bet is probably to use Postgress specific features intended to address superclass/subclass cases, provided you can get around the limitations of your ORM tools. Other answers have addressed this approach.

Source Link
Walter Mitty
  • 4.4k
  • 21
  • 22

If you look up "class table inheritance", you will get numerous papers that cover the same ground that you have outlined in your question. My favorite write up is Martin Fowler's. If you look up "specialization/generalization", you will get several writeups that address how the ER model was extended to cover the case that we call superclass/subclass. The ER model doesn't help you with design issues, because the ER model is intended to be design agnostic.
And, of course, the object model has inheritance. Your best bet is probably to use Postgress specific features intended to address superclass/subclass cases, provided you can get around the limitations of your ORM tools. Other answers have addressed this approach.