Database design 呈现与特定实体关联的标记数的首选方法?

Database design 呈现与特定实体关联的标记数的首选方法?,database-design,Database Design,我们需要对内部网中的内部资产(代码工件…)进行标记,以便以后可以轻松地对其进行搜索 我们希望显示由某个标记名标记的资产计数(非常类似于)。我想了解,当用户访问此页面时,此计数是动态测量的,还是从包含标签信息和相关条目数目的标签计数表中呈现的(注意:假设此tag_count表定期更新,与资产异步关联的标记数) 如果资产数量在10到数千之间,那么解决上述问题的首选方法是什么?这里有另一个选项…不是标记计数表,而是一个简单的查询,它获取标记/计数以及在re-f之前一段时间内用于显示结果的数据缓存的任何

我们需要对内部网中的内部资产(代码工件…)进行标记,以便以后可以轻松地对其进行搜索

我们希望显示由某个标记名标记的资产计数(非常类似于)。我想了解,当用户访问此页面时,此计数是动态测量的,还是从包含标签信息和相关条目数目的标签计数表中呈现的(注意:假设此tag_count表定期更新,与资产异步关联的标记数)


如果资产数量在10到数千之间,那么解决上述问题的首选方法是什么?

这里有另一个选项…不是标记计数表,而是一个简单的查询,它获取标记/计数以及在re-f之前一段时间内用于显示结果的数据缓存的任何应用程序蚀刻很重要。这是一个选项吗?在web场景中,这是更常见的方法。

我想说:在请求时计算它是首选方法,因为它是精确/正确的数字

但是

这种方法很可能会遇到性能限制。在这种情况下,使用单独的表就可以了


根据所使用的rdbms,您可能可以选择物化视图,这可能会以可接受的性能为您提供最佳/正确的结果。

我们使用Hibernate作为ORM层,使用EhCache作为我们的二级缓存。这从缓存的角度来看会有所帮助,但会优先考虑计数(即,所有计数最高的条目首先列出)将是一个问题,除非它存储在一个单独的表中除非您处理数十万个标签,否则内存中的结果排序应该非常快(例如,只需填充/缓存一个
SortedList
,这是一个选项吗?)是的,我将采用这种方法。我们在开发环境中使用h2,并计划在生产中使用MySQL或Postgres。上述所有数据库都支持物化视图或类似的()吗?我希望避免任何可能使其非常特定于数据库的解决方案。