sql数据建模-查询跨多个类别具有标记的记录

zbwhf8kr  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(514)

我有一张table,上面放着一家公司提供的不同软件服务。这些服务由它所服务的行业、它所属的lob以及服务中涉及的技术来标记。服务可以在每个行业、lob和技术上有多个标记。
例如:以下可能是主数据:

事务数据可以如下所示:

我需要创建一个视图,用于按行业/lob和技术标签查询数据。目前,我将所有tagtoservice关系表(服务技术、服务lob、服务行业表)连接到services事务表。但这需要大量的记录,因为通常一个服务可以标记多达10-15个行业和技术。
我只是想知道什么是对这些数据建模的最佳方式,这样我就可以在一个视图中通过所有三个标记查询服务。
我不是一个数据建模Maven,这是我第一次涉足数据建模领域——所以请原谅我的问题的“noob”性:)。我使用saphana作为数据库,并通过odata服务公开数据,我希望将此视图用作数据源。

vfhzx4xs

vfhzx4xs1#

如果您要求对数据进行建模:通常在事务表中,您保留外键,而不是可以通过外键从主表中获取的文本列。我打赌这也是您的意思,但是示例显示了事务表中的文本值。
除此之外,我认为你所拥有的是合理的。这些“标记”表表示“服务”表的不同粒度级别,如果将它们组合在一个表中(例如:带有逗号分隔标记的单列、xml/json列、多列[lobtag1、lobtag2,…])b/c,则会产生反效果,这将使这些列不可索引和/或难以查询。您可能对xml和json列进行了优化,但不应考虑这些优化,除非列太多且稀疏。

相关问题