ios - 核心数据数据库设计问题

标签 ios database-design core-data

我想创建一个核心数据模型来存储用户输入的问题以及这些问题的条目。

问题将是 3 种类型中的一种。 (1-10、是 否或一些特定单位)。因此,用户将进入应用程序,单击“添加问题”,然后将显示一个表单,他们将在其中输入问题标题,选择问题类型(是/否、规模1-10 或特定单位) - 如果他们选择特定单位,则必须输入这些单位,例如:厘米、毫米、升等...

在一段时间内,这些问题将有多个条目。 IE:用户可以输入问题“你的番茄植株有多高? - 特定单位 - CM”和“你的番茄有多红? - 比例 1-10”,然后会一次又一次地返回应用程序以绘制出随着时间的推移取得进展。

我的问题是关于数据库设计的。我如何在我的核心数据中设置它?

目前我有这个:

enter image description here

现在,我被困住了!我不太知道如何解释问题具有不同类型的事实,因此条目会有所不同。

另外,我需要考虑可能需要单位的问题。这些问题只是一个数字。

所以我想我可能需要不同的问题实体。就像有一个问题实体和作为子实体的特定问题 - 但我不知道如何做到这一点,也不知道如何记录对这些问题所做的条目!

感谢您的关注,并在可能的情况下提供帮助。 :)

最佳答案

没有正确的设计方法,而且确实有很多不同的方法来设计解决方案。

正如@dasdom所建议的,您可以从Entry实体描述中删除value,并使Entry抽象。创建 Entry 的三个子类(例如 BooleanAnswerRankedAnswerValueAnswer)。 ValueAnswer 将具有 decimalValueunits,其他类似的相关值。

此外,仅供引用命名约定:

  • 实体:大写,单数:问题条目(尽管我将其命名为答案)
  • 属性/关系:小写:questionTexttypeentriesvaluequestions (“forQuestion”和“forEntity”是多余的,因为关系是在它们各自上定义的)

另一种选择是让Entity具有unitsboolValuerankValuedecimalValue 但仅使用相关的属性。恕我直言,这不是一个优雅的解决方案。

关于ios - 核心数据数据库设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6204485/

相关文章:

mysql - 对于社会保险号,我应该使用 INT、CHAR 还是 VARCHAR?

ios - 快速 3 迁移后 NSPredicate 崩溃

ios - 核心数据初始化

ios - 无法在 UITableViewCell 的详细信息文本中显示阿姆哈拉字母

ios - 核心数据 - 保存上下文后撤消更改

ios - 用 swift 在段落周围画框

ruby - Ruby 模型的数组属性

ios - 画一个圆圈,用不同的颜色填充不同的部分

mysql - 测验数据库设计

iphone - 在后台获取核心数据