Postgresql 如何构造每个表都包含唯一但也共享公共字段的表?

Postgresql 如何构造每个表都包含唯一但也共享公共字段的表?,postgresql,database-design,database-schema,entity-relationship,Postgresql,Database Design,Database Schema,Entity Relationship,假设您有几个包含唯一属性但也共享公共属性的表,那么根据性能和最佳实践构建表的最佳方法是什么?假设可能有数百万条记录 请看下面,以便更好地了解我所说的内容 这可能被视为一个意见问题,因此可能会被关闭。问问你自己“你的应用程序是否在公共属性上有独立的进程/”如果是这样,那么选项1显然是(IMO)更好的选择。即使不是这样,我也会倾向于这个选项,但始终取决于数据处理必须支持的内容。还有另一种选择。Postgres支持“”。我个人避免这样做,因为它有问题,但您应该知道这个选项。具体来说,在postgre

假设您有几个包含唯一属性但也共享公共属性的表,那么根据性能和最佳实践构建表的最佳方法是什么?假设可能有数百万条记录

请看下面,以便更好地了解我所说的内容


这可能被视为一个意见问题,因此可能会被关闭。问问你自己“你的应用程序是否在公共属性上有独立的进程/”如果是这样,那么选项1显然是(IMO)更好的选择。即使不是这样,我也会倾向于这个选项,但始终取决于数据处理必须支持的内容。还有另一种选择。Postgres支持“”。我个人避免这样做,因为它有问题,但您应该知道这个选项。具体来说,在postgresql中,选项2的一个优点是,您可以使用所有共享列,甚至可以通过查询父表跨所有问题类型进行查询(尽管您将仅限于父表中的列)。我发现这是一种有用的方法,可以将物理表分开,这样它们就可以根据类型拥有不同的索引等,同时还可以通过查询父级轻松报告整个数据集。处理过程需要根据问题类型将共享和唯一的道具处理成一个公式。基本上,我需要根据test_id连接所有问题类型,并再次连接到问题类型回答表(每个问题都有一个答案),然后处理所有数据,并返回结果的聚合。继承看起来很有希望,但仍然关注性能问题。