数据库设计用于跟踪用户流

时间:2019-02-16 14:35:22

标签: python django django-models orm generic-foreign-key

enter image description here enter image description here

我想在不同模型之间设计一个用户跟踪系统。有一个与部分相关的模块表,而各部分与子部分相关。每个小节可以涉及不同的独立表。独立表存储了不同的项目(幻灯片,视频,文本),用户可以像Coursera课程一样以线性流程浏览这些项目。流程将由我们预先确定,但可以由我们更改。因此,子部分之间的线性流无法进行硬编码。我还需要通过这些小节来跟踪用户的进度。

例如:

一个小节可以指向将存储user_info,game_score,game_completion_date_time的游戏表,或者有时该小节可能指向存储了slide_text,slide_url和user_info的幻灯片表。

我想跟踪那些表中的更改,所以我应该采取什么方法。在下面,我贴了一张我正在解决问题的图像。

1 个答案:

答案 0 :(得分:0)

您可以制作一个“ courseflows”表,其顺序是按正确顺序排列的ID的逗号分隔整数序列,然后在向用户展示节时解析该序列。添加您需要的任何其他信息和时间戳,以便为新用户分配最新的流量。通过链接此链接,您还可以保留任何用户的流量,以防在用户进入中途时对其进行更改。

我还将考虑使用不同的辅助表来标记用户对每个模块,部分和子部分的完成情况,而不只是一个。