我正在寻找点系统DB设计。我的问题与我在这里找到的问题非常相似。 : - Database design - Approach for storing points for users。
在此系统中,当发生任何此类操作时,用户会获得积分: -
在数据库设计方面,我创建了这两个表: -
Action_Master表包含: - (id,action_name,action_point)
User_Action_Point表存储每个操作的历史记录,如下所示: - (id,action_master_id,action_done,created_by,created_at,updated_by,updated_at,deleted_at)
现在问题是User_Action_Point表,它包含用户表,答案表和Answer_rating表的重复数据。
Jeffrey在链接问题的第一个答案中很好地解决了这个问题。根据他的回答,我们必须执行视图或存储过程,以便每次总结来自不同表的点。这种方法非常棒,因为我们不需要处理数据删除的开销或可能影响用户点的任何其他更改。
但是,当我们非常频繁地需要用户点时,这是一个好方法吗?您认为这种方法可以增加数据库响应时间或MySQL服务器上的负载吗?
或者我需要将聚合的用户点数据存储在某个表中,并且处理重复数据的开销(即如果有任何内容被删除,那么我们也必须减去点表中的那些点。)
请建议。