我需要一些关于如何创建具有部门,群组和人员的coredata模型的建议。
我使用XML文件工作,但我想把它变成一个合适的SQLite DB。
XML文件的子集在下面..
规则是每个部门可以有多个组,每个组可以有多个人。再一次,我将不胜感激任何建议..
(长代码的道歉)
<key>itemChildren</key>
<dict>
<key>itemChildren</key>
<dict>
<key>itemChildren</key>
<dict>
<key>itemTitle</key>
<string>Person1</string>
<key>itemSubTitle</key>
<string>Person1Detail</string>
</dict>
<dict>
<key>itemTitle</key>
<string>Person2</string>
</dict>
<dict>
Person x........
</dict>
<dict>
<key>itemTitle</key>
<string>Infinitive</string>
</dict>
<key>itemTitle</key>
<string>Group1</string>
<key>itemSubTitle</key>
<string>Group1 Detail</string>
</dict>
<dict>
<key>itemChildren</key>
<dict>
<key>itemTitle</key>
<string>Person1</string>
<key>itemSubTitle</key>
<string>Person1Detail</string>
</dict>
<dict>
<key>itemTitle</key>
<string>Person2</string>
</dict>
</array>
<key>itemTitle</key>
<string>Group2</string>
<key>itemSubTitle</key>
<string>Group2 Detail</string>
</dict>
<dict>
<key>itemChildren</key>
<key>itemTitle</key>
<string>Person1</string>
<key>itemSubTitle</key>
<string>Person1Detail</string>
<dict>
<key>itemTitle</key>
<string>Person2</string>
</dict>
<dict>
<key>itemTitle</key>
<string>Person3</string>
</dict>
</array>
<key>itemTitle</key>
<string>Groupx</string>
<key>itemSubTitle</key>
<string>Groupx Detail</string>
........
</dict>
<key>itemTitle</key>
<string>Dept1</string>
<key>itemSubTitle</key>
<string>Dept1Detail</string>
</dict>
<dict>
<key>itemChildren</key>
<dict>
<key>itemChildren</key>
<array>
<dict>
<key>itemTitle</key>
<string>Person1</string>
<key>itemSubTitle</key>
<string>Person1Detail</string>
.....
<key>itemTitle</key>
<string>Dept2</string>
<key>itemSubTitle</key>
<string>Dept2Detail</string>
</dict>
........
<key>itemTitle</key>
<string>Dept3</string>
<key>itemSubTitle</key>
<string>Dept3Detail</string>
</dict>
</dict>
答案 0 :(得分:1)
除非我遗漏了某些内容,否则至少从概念上讲,您的数据库架构应该非常简单。
我将从您的模型所需的主要实体开始:人员,团体和部门。他们每个人都可以按照正常情况拥有自己的个人财产。
创建实体和属性后,您需要建立它们之间的关系。
根据你所说的,这就是我建议你接近它的方式,包括相应的反向关系:
人&lt;&lt; ------&gt;&gt;组(多对多) 意思是一个人可以在很多人中 组(假设?)和一组可以 有很多Person实例
人&LT;&LT; -------&GT;部 (多对一)意味着一个人可以 在一个部门和一个部门 部门可以有很多“人”
组&LT;&LT; -------&GT;部 (多对一)或(多对多)如果你 希望允许团体参与 很多部门。
答案 1 :(得分:0)
我为延迟回复而道歉。生活发生了......我想出的是一个有两张桌子的数据库 - 用于争论,动词和人。
架构如下所示:
它不像我想的那样优雅,因为有重复的人,但它似乎有效。
再次,抱歉延迟。
大卫