基于文档的核心数据应用程序 - 添加和删除附加属性
Document based core data app - add and remove additional attributes
我有一个带有实体 "Languages" 的基于文档的核心数据应用程序。该实体有两个永久属性 "key" 和 "comments"。
是否可以在运行时以编程方式添加和删除附加属性("language_1"、"language_2" 等)?
我的目标是避免创建 table 假设用户只需要几个属性(我不知道需要多少属性)。
或者我应该选择其他解决方案? :)
编辑
案例说明:
当用户创建新文档时,table "Languages" 只有两个属性 "key" 和 "comments"。在使用文档期间,用户可以随时添加或删除语言 - 我的意思是属性(列)而不是 table.
中的行
我的目标是拥有如下所示的动态实体。
是的,这是可能的。但这可能不是你想要的。无论何时打开文档,您都必须在运行时为每个文档重新创建修改后的托管对象模型。
看到你的草图后,我建议使用稍微不同的模型。顺便说一句,最好的风格是对实体使用单数名词("Section",而不是"Sections), plural nouns for to-many Relationships ("sections,而不是"relSection"),并在其属性中省略实体名称("comment", 而不是 "sectionComment").
为您的永久属性使用一个实体。称之为"Word"。 Word 具有属性 "comments" 和 "key",以及 to-many 关系 "translations" 和 "sections"。在 "translations" 关系的另一端是一个 Translation 实体,它具有属性 "text" 并且可能还有语言的名称(作为字符串或作为另一个关系)。
像这样:
对于第一个示例,您有一个 Word 实例、3 个翻译实例(.text = Home、Zuhause 和 Casa)和 3 个语言实例(.name = 英语、德语、西班牙语) .添加第二行时,您将获得 1 个 Word 实例、3 个 Translation 实例,但还有 0 个 Languages。而是将新的翻译实例添加到现有语言的 "translations" 关系中。
我有一个带有实体 "Languages" 的基于文档的核心数据应用程序。该实体有两个永久属性 "key" 和 "comments"。 是否可以在运行时以编程方式添加和删除附加属性("language_1"、"language_2" 等)?
我的目标是避免创建 table 假设用户只需要几个属性(我不知道需要多少属性)。
或者我应该选择其他解决方案? :)
编辑
案例说明: 当用户创建新文档时,table "Languages" 只有两个属性 "key" 和 "comments"。在使用文档期间,用户可以随时添加或删除语言 - 我的意思是属性(列)而不是 table.
中的行我的目标是拥有如下所示的动态实体。
是的,这是可能的。但这可能不是你想要的。无论何时打开文档,您都必须在运行时为每个文档重新创建修改后的托管对象模型。
看到你的草图后,我建议使用稍微不同的模型。顺便说一句,最好的风格是对实体使用单数名词("Section",而不是"Sections), plural nouns for to-many Relationships ("sections,而不是"relSection"),并在其属性中省略实体名称("comment", 而不是 "sectionComment").
为您的永久属性使用一个实体。称之为"Word"。 Word 具有属性 "comments" 和 "key",以及 to-many 关系 "translations" 和 "sections"。在 "translations" 关系的另一端是一个 Translation 实体,它具有属性 "text" 并且可能还有语言的名称(作为字符串或作为另一个关系)。
像这样:
对于第一个示例,您有一个 Word 实例、3 个翻译实例(.text = Home、Zuhause 和 Casa)和 3 个语言实例(.name = 英语、德语、西班牙语) .添加第二行时,您将获得 1 个 Word 实例、3 个 Translation 实例,但还有 0 个 Languages。而是将新的翻译实例添加到现有语言的 "translations" 关系中。