Web 应用程序将为用户提供来自不同类别的不同帖子。
例如类别可能是“幽默”、“运动”等。
所以为此我将有一个简单的表: Categories(id, category_name)
。
我想跟踪用户访问特定类别的次数,因此下次用户登录时,他的默认页面将是用户访问次数最多的两个不同类别的帖子页面。
基本思想(我将使用 Ruby on Rails),在控制器提供某个页面之前,该类别的计数器将递增并保存到 DB 中。 我的问题是我不知道在哪里保存这个类别的计数器?
第一个想法(表计数器):
Counters(id, category_name1, category_name2, ..., category_nameN, user_id)
其中 category_name 是整数字段,表示用户访问次数(特定类别)。这个想法不好,因为当我添加新类别时,我必须更改此表以添加新列。
第二个想法:
Counters(id, count, category_id, user_id)
对我来说更好的主意但我猜仍然不是很好的性能,因为每个用户我将有 N 行,其中 N 是类别数。那么,如果我有 1000 个用户和 10 个类别,那将是过度杀戮?