0
假设我有三种类型的数据:A
's,B
's和C
's。一个看起来是这样的:在PostgreSQL中组织不同类型的提要的最佳方式是什么?
{
"id": "4ccdfb68-ce18-4361-bd90-e61f1fcf8d2b",
"created_at": "2016-11-27 02:24:12.889637+00",
"author": "7d16389b-2d66-4c59-bb6a-87992a60d112",
"foo": "bar",
"baz": "zab",
"cat": "dog"
}
B相类似这样的:
{
"id": "4ccdfb68-ce18-4361-bd90-e61f1fcf8d2b",
"created_at": "2016-11-27 02:24:12.889637+00",
"author": "7d16389b-2d66-4c59-bb6a-87992a60d112",
"foo": "bar",
"baz": "zab",
"nak": "kan"
}
与C看起来是这样的:
{
"id": "4ccdfb68-ce18-4361-bd90-e61f1fcf8d2b",
"created_at": "2016-11-27 02:24:12.889637+00",
"author": "7d16389b-2d66-4c59-bb6a-87992a60d112",
"baz": "zab",
"cat": "dog"
}
有在各自的领域(小鲨鱼)的变化,但他们有一些一致的领域(可以说是“元数据”)。其中每个代表他们自己的数据类型 - B不是具有不同字段的A。然而,在以后我需要到最近的三者组合成一个“喂”:
[{
"id": "4ccdfb68-ce18-4361-bd90-e61f1fcf8d2b",
"type": "A",
},
{
"id": "4ccdfb68-ce18-4361-bd90-e61f1fcf8d2b",
"type": "B",
},
{
"id": "4ccdfb68-ce18-4361-bd90-e61f1fcf8d2b",
"type": "C",
}]
我应该建立代表所有三个与他们共享领域和JSONB场一个表,还是应该有他们自己的表,并对他们做联合查询?为了清楚起见,Feed只会共享字段。我也需要这种向前兼容 - 我知道一个事实,未来类型将有一个ID,一个created_at字段和一个作者,但除此之外,这是公平的游戏。
谢谢!随意询问详情。
编辑:啊,是的,我忘了提,我也想(在未来的某个点)就一个字段索引(如果行有它),这样我可以搜索所有行“富“==”栏“。如果一行没有foo,那不应该破坏这个。
我忘了包括一个'type'柱。它存在:) – AniSkywalker