1

我只是想验证我的数据结构。
对我来说似乎有点复杂,也许可以简化?

来自核心数据模型编辑器的快照

  • 问题分为章节。
  • 对于每个问题,每个会话只能有一个答案。
  • 目的是能够比较/分析相同问题的答案(不同用户或相同用户在不同时间,即不同会话)。
  • 模板是章节和问题的集合,如果章节和问题相同,则不必复制。
  • (如果 Answer 与 Session 没有关系,那将是必要的。)
  • 从 Answer 到 Session 的关系是正确的策略吗?
  • 为了简化模型,您还需要改进什么?

谢谢!

编辑

后续澄清:

  • 答案不是静态的(例如“正确”答案、“解决方案”),而是用户输入的一些文本。它更像是“问卷”而不是“测验”。答案具有可以分析的定量属性。
  • 如前所述,一个问题在一个会话中只能有一个答案。因为问题可以间接属于多个会话(通过(NSSet*) question.chapter.template.sessions),所以它们可能有多个答案,因此需要一对多关系。
  • 典型场景:用户使用某个模板开始一个新会话并填写答案。然后他可以查看结果分析并将其与使用相同模板的其他会话的结果进行比较。

编辑 2

数据模型的快照,包括属性

数据模型的快照,包括属性

4

2 回答 2

1

老实说,这是我会做的而不是你的结构,但我不知道每个实体的目的是什么,因为我无法从它们的简单名称中找出。

这只是解决循环的一个想法

您仍然可以从会话中获得所有模板和所有答案,而不是直接获得,但这不会让您的生活变得更加困难。

在此处输入图像描述


更新:

乍一看,对我来说,Session实体似乎只是这里的一个额外实体。Template老实说,如果您与(又名Questionnaire)实体连接,您将不需要它。

你必须在and之间添加一个多对多的关系(你可以做到,不用担心)。使用这种方式,您也可以从每个模板中获得所有答案,并且不会有任何循环。TemplateUser

在此处输入图像描述

于 2012-08-24T15:56:15.637 回答
0

尽管@holex 做出了非常有益的努力——最好的方法似乎仍然是坚持我的设计。我所希望的简化并没有实现。

于 2012-08-25T19:40:52.803 回答