来自多个表的标签

时间:2014-10-29 09:09:29

标签: mysql database database-design tags

据我所知,关系数据库不具备处理多态关系的能力,但是有多种简单的方法可以将多个表集成到一个标签表中。基本上我想要实现的是拥有一个标签表,但标签名称来自3个表中的一个(游戏,平台或公司)。请将以下设计视为模型:

enter image description here

我是从错误的方式看这个还是我走在正确的轨道上?有人会建议采用不同的方法吗?

2 个答案:

答案 0 :(得分:1)

您的案例听起来像是关系建模和对象建模之间的不匹配。如果您有兴趣设计提供最接近继承(而不是多态)的关系表,那么在这些标记下查找问题,答案和信息:

如果您对更多细节感兴趣,请查看Martin Fowler对相同技术的处理。

如果你的兴趣在于描绘游戏,平台或公司与一些我称之为“标签提供商”的未命名超类之间的IS-A关系,那么请查看“EER泛化/专业化”。 (EER代表增强实体关系)。这显示了如何绘制关系图,而不提供有关如何实现它的任何细节。

答案 1 :(得分:0)

你是正确的,因为文章,视频和文章之间有很多关系。标签

请参阅, 一篇文章=> with =>很多标签 一个标签=>属于=>很多文章。

因此,为了保留第3个映射,需要第4个映射表。

第3表将包含文章+标签

之间的关系

第4张表格将包含视频+标签

更新=>

对于与Tags表相关的其他表,再制作3个表:

第5表将公司+标签=>之间的关系。 companies_tags

第6表将有Game + Tags =>之间的关系。 games_tags

第7表将具有Platform + Tags =>之间的关系。 platforms_tags