我有一个人的主表。我的 Django 应用程序中的所有内容都与一个或多个人直接或通过长 fk 链相关。此外,我所有的模型都有标准的簿记字段“created_at”和“updated_at”。我想在我的 Person 表上添加一个名为“last_active_at”的字段,主要用于原始 sql 排序目的。
创建或编辑某些相关模型会为这些对象生成新的时间戳。我需要以某种方式用这些值更新 Person.'last_active_at' 。从功能上讲,这并不难实现,但我担心应用程序会承受过大的压力。
我最担心的两个原因是我被限制在一个真正的数据库字段中——我不能将函数分配给 Person 表作为 @property——并且这些“活动”模型之一接收并处理来自我无法控制的外国数据源,偶尔会一次接收大量数据。
我的第一个想法是在“活动”模型中添加一个 post_save 挂钩。似乎仍然是我最好的选择,但我对它们一无所知,它们对数据库的影响有多大,等等。
我的第二个想法是编写某种脚本,通过白天的活动并在晚上更新这些模型。不过,我的雇主是“直播”。
我的第三个想法是修改 post_save 算法以检查“updated_at”是否距离 Person 的“last_active_at”不到半小时,如果为真则不更新该人。
我的想法是否朝着可扩展的方向发展?我应该采用其他方法吗?