我正在构建一个用于测试的iOS应用程序,我想在继续之前确定我的模型.
我发现这篇文章非常有帮助:
What mysql database tables and relationships would support a Q&A survey with conditional questions?
我只想提出一些关于为Core Data实现简化版本的建议.
以下是我的一些假设:
>每个用户可以进行一次测试
>每个用户每次测试都有一组答案
>每个测试都有一个用户
>每个问题都有很多答案
这是我的核心数据模型:
问题:
>这个模型是否准确反映了我的假设?
>是否需要Test_Questions和User_Answers?
>理论上,我可以在Test和Question之间直接建立关系吗?测试 – >>题
>非常感谢任何有关改进的建议.
最佳答案 您应该能够删除TEST_QUESTIONS和USER_ANSWERS表.目前TEST_QUESTIONS和TEST之间存在一对一的映射,而USER_ANSWERS和USER实际上没有任何用途.
理论上,您也可以将TEST和USER结合起来,因为它们也是一对一的,但有人可能会认为它们是单独的问题,每个都应该有一个表.
此外,虽然设计确实符合您对具有单个用户的测试的假设,但您确定这是您想要的吗?这意味着测试只能与单个用户相关联.
如果是这种情况,您可以进行另一种简化.您可以向ANSWER表添加一个字段,例如“wasSelectedByUser”,并删除USER和ANSWERS之间的关系,因为您可以从USER导航到TEST到QUESTION到ANSWER,并确定用户选择的内容.