用户可以加入项目。
项目可以有很多任务。
每个用户在自己的时间完成任务,他们还可以对任务进行一些其他用户特定的设置,例如待办事项列表中的优先级以及是否在完成时隐藏它。
我面临的问题是其中一些设置必须具有默认值,例如 priority = 0、hideOnComplete = true。
这些必须始终可供每个项目用户的客户使用。如何使具有每个用户默认值的 TaskUser 行始终存在?
选项A:
每次向项目添加新任务时,我都会为项目中的每个用户创建一个 TaskUser 关系。
每次有新用户加入项目时,我都会为项目中的每个任务创建一个新的 TaskUser 关系。
我不认为这是要走的路,因为你必须一直对这些事件做出反应并做出回应。
选项B:
复制任务表中的默认字段。我在 Task 表中包含一个 priority 和 hideOnComplete 字段。即使 TaskUser 关系不存在,客户端也可以知道在任务设置表单上显示什么。
我不再需要对新用户或新任务做出反应。即使没有 TaskUser 关系,客户端也可以请求任务对象并使用默认字段填充设置表单。之后,当用户提交自己的设置时,客户端可以查看现有的 TaskUser 关系以获取正确的值。
这对我来说似乎是一个更好的选择。你怎么看?