Sql 多表1:1关系的最佳实践模式

Sql 多表1:1关系的最佳实践模式,sql,postgresql,schema,Sql,Postgresql,Schema,目前,我们有一个“messages”表,其中有一个名为“content_id”的列,它与消息可以附加到的任何内容(其他多种类型的表数据)建立1:1的关系 例如,一条消息可以附加到另一个主键为ID的表行,另一条消息可能与另一个主键为varchar(36)或uuid的表行相关联。可能有更多的表可以将消息分配给它们的行之一,以及任何其他数据类型 最后,消息只能与具有各种主键数据类型的任何行中的单个行相关联 有没有比消息表中的一列varchar(36)更好的解决方案来保存int或uuid 如果我为每个关

目前,我们有一个“messages”表,其中有一个名为“content_id”的列,它与消息可以附加到的任何内容(其他多种类型的表数据)建立1:1的关系

例如,一条消息可以附加到另一个主键为ID的表行,另一条消息可能与另一个主键为varchar(36)或uuid的表行相关联。可能有更多的表可以将消息分配给它们的行之一,以及任何其他数据类型

最后,消息只能与具有各种主键数据类型的任何行中的单个行相关联

有没有比消息表中的一列varchar(36)更好的解决方案来保存int或uuid

如果我为每个关系使用一个联接表,我可以在联接它们的两列上放置一个唯一的索引,以形成相同的关系。这种架构更有效吗


DB是postgres,如果这很重要的话…

设置一个带有int-ID的表和另一个带有UUID的表有什么原因吗?如果它们都是相同的类型,那么这种类型的关系将更容易维护。一种是由具有唯一UUID的配置脚本填充的,另一种是从序列中自然生成的自动递增ID。通过不要求uuid是字符串,整个问题就消失了,所以让我们假设它应该是。。。在这样的模式中,最好的实用解决方案是什么?