我想创建一个核心数据模型来存储用户输入的问题以及这些问题的条目。
问题将是 3 种类型中的一种。 (1-10、是 否或一些特定单位)。因此,用户将进入应用程序,单击“添加问题”,然后将显示一个表单,他们将在其中输入问题标题,选择问题类型(是/否、规模1-10 或特定单位) - 如果他们选择特定单位,则必须输入这些单位,例如:厘米、毫米、升等...
在一段时间内,这些问题将有多个条目。 IE:用户可以输入问题“你的番茄植株有多高? - 特定单位 - CM”和“你的番茄有多红? - 比例 1-10”,然后会一次又一次地返回应用程序以绘制出随着时间的推移取得进展。
我的问题是关于数据库设计的。我如何在我的核心数据中设置它?
目前我有这个:
现在,我被困住了!我不太知道如何解释问题具有不同类型的事实,因此条目会有所不同。
另外,我需要考虑可能需要单位的问题。这些问题只是一个数字。
所以我想我可能需要不同的问题实体。就像有一个问题实体和作为子实体的特定问题 - 但我不知道如何做到这一点,也不知道如何记录对这些问题所做的条目!
感谢您的关注,并在可能的情况下提供帮助。 :)
最佳答案
没有正确的设计方法,而且确实有很多不同的方法来设计解决方案。
正如@dasdom所建议的,您可以从Entry
实体描述中删除value
,并使Entry
抽象。创建 Entry
的三个子类(例如 BooleanAnswer
、RankedAnswer
和 ValueAnswer
)。 ValueAnswer
将具有 decimalValue
和 units
,其他类似的相关值。
此外,仅供引用命名约定:
- 实体:大写,单数:
问题
和条目
(尽管我将其命名为答案
) - 属性/关系:小写:
questionText
、type
、entries
、value
、questions
(“forQuestion”和“forEntity”是多余的,因为关系是在它们各自上定义的)
另一种选择是让Entity
具有units
、boolValue
、rankValue
和decimalValue
但仅使用相关的属性。恕我直言,这不是一个优雅的解决方案。
关于ios - 核心数据数据库设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6204485/