车削多态性表关联到一个类型栏
问题描述:
说我有一个entities
表(200mil行+),其中每行具有contentId
柱引用一块存在于无论是posts
,comments
和replies
表内容(不FK的)。车削多态性表关联到一个类型栏
现在,对于entities
中的每一行,我想检查哪个表中存在相关联的内容,并将其作为类型返回。
这是数据迁移过程的一部分。有关如何以相对高效的方式执行此操作的任何想法?
答
我会创建一个映射表,然后在您的迁移中使用它,基于以下查询。这可能是昂贵的,但你只需要运行一次。如果您的实体数据集是直播,那么您可以添加触发器来自动为您维护entities_type关联表。
根据接下来的步骤,维护三个不同的表格可能会更聪明,而不是像这样的标签表格。我希望它能让你开始,寿。
create table entities_type as
select 'post', contentId
from entities
join posts using(contentId)
union all
select 'comments', contentId
from entities
join comments using(contentId)
union all
select 'replies', contentId
from entities
join replies using(contentId)
;