我在为我的应用程序创建一个优雅的架构时出现问题,该架构是用Symfony2框架编写的。我想强调SF2,因为我认为可能存在特定于框架的最佳解决方案。
情况
我有一个应用程序,用户可以在其中获取项目并完成它们。每个项目都有一系列任务。当用户注册项目时,他会从项目中获得第一个任务,第二天他将完成下一个任务,依此类推,直到项目中没有任何任务。
项目和任务由CMS中的管理员创建。当用户成功/失败时,必须记录该任务(status,date,user_id等)。请注意,情况与在博客上编辑文章的情况不同,其中只有一个文章的实例被许多用户修改。这里项目及其任务不会被修改,因为许多用户可以注册一个项目 - 它们都会有不同的结果。
所以我有课程:用户,项目和任务。
问题
基本问题是:我应该如何记录每个任务的不同用户的结果,同时保持逻辑,并在SF2中使其更好,其中数据库表是基于类(entites)创建的。拥有一个便于开发的架构会很棒:我必须显示上升的任务,有日历,我必须对成功/失败的任务进行统计,等等。
我能够发明的解决方案
当用户注册项目时,我可以创建所有项目任务的副本。它们可以是UserTask类的对象,它们将存储进程所需的所有数据。因此UserTask将是属于用户的任务。