使用SO作为一个主要示例,假设某个问题的question
或answer
被删除,但在删除之前获得了一些上升选票。我想这些点仍然授予作者(如果它们不是,假设它们是),那么SO如何保持准确的声誉总数?
问题/答案是否实际上不从数据库本身删除,并且可能有一个处理的状态字段,并决定问题或答案是否可见?
或者,它们实际上已被删除,而且声誉依赖于系统在每次投票时都是连续准确的,并且不一定有历史记录(如记录投票的问题)
答案 0 :(得分:1)
如果您希望能够推断出一个准确的总数,特别是如果您希望能够计算总数(通过查看您的积分历史记录可以让您做到的方式)那么您需要保持交易信息,而不是一个总计。
如果要为点的事务日志提供参照完整性,则需要使用软删除机制来隐藏“已删除”的问题。
如果您没有保留事务日志,并且没有软删除问题来备份事务点日志,那么您将无法重新计算或证明总计。您还将更难以显示随时间推移而获得的积分图和随时间累积的声誉。您可以通过保留每日点快照来完成这些图表,但这在存储方面会比仅仅跟踪上下投票更加繁重和昂贵。