如何在ASP.NET网页中的每个类别前面显示没有记录(Count)?

时间:2014-10-13 05:17:08

标签: c# mysql asp.net

我正在使用ASP.NET开发一个网站,我的数据库是MYSQL。我想显示括号中每个类别的记录数。 如下图所示

enter image description here

当然加载页面后,我可以异步调用一个函数来计算每个类别的记录。但是,如果我有数百万条记录,如果我有50个类别,我必须在数百万条记录中进行50次彻底计算,以获得每条记录的计数。我的直觉说它会导致严重的性能问题。

那么开发人员如何解决这个问题呢?有人告诉我实现一个Count表,并且我添加到DB的每个记录都会增加此计数,如果用户删除了一个记录,则减少此计数器。有道理。但是,如果两个用户尝试添加记录而其他用户尝试使记录无效,会发生什么。然后会发生什么?该操作会导致错误吗?

你对此有何看法?明智的表现是什么? 异步计算每条记录? 维护一张计数表? 还有其他建议吗?

1 个答案:

答案 0 :(得分:0)

假设您的数据库有两个名为类别的表,而记录我会使用查询来获取类别;

SELECT categories.name, COUNT(*) as records_count
FROM categories LEFT JOIN records ON categories.id = recoords.categories_id
GROUP BY categories.id

为了表现,我会缓存这个结果。