
1)“人”实体 – 名称,电话,地址,国家等属性……
2)“CountryList” – countryname,countryLat,countryLong等属性.
CountryList实体在首次运行应用程序时预先填充,以包括世界上所有国家/地区及其受尊重的数据.
我被困的地方是否需要这两个实体之间的关系?
我将允许用户从CountryList实体数据中选择一个国家,并希望在Person实体的country属性中存储选择.
我是否只将CountryList中的countryname作为字符串并将其存储在Person的国家/地区?还是我可以在他们之间建立关系?
我知道一个用户只能属于一个国家,但一个国家可以有很多用户,所以这是一对多的关系吗?或者它是多对多,因为许多用户可以属于一个国家,但一个国家可以拥有大量用户?困惑!
有人可以请教我这个,并指出我在xcode中应该做的正确的方向.
提前谢谢了
马特
编辑:这是对的吗?
我已对实体名称等进行了更改,并认为我现在已正确设置关系.
编辑2:删除了国家/地区属性并重命名了关系
解决方法 首先,您的“CountryList”实体应称为“Country”,因为它只代表一个国家/地区.您拥有许多这些国家的事实与其名称无关.在那之后,使用关系似乎很自然,一个“人”有一个“国家”,但一个国家可以有很多人.因此,一对多的关系.使用关系将简化您可能想要执行的许多 *** 作(即访问一个人的所有国家/地区信息,或获取一个特定国家/地区的所有人员的列表).
哦,这可能会帮助你更好地理解关系:CoreData本身没有“多对多”的关系.您始终定义从源到目标的关系.因此,如果您定义从Country到Person的关系,这将是一对多的关系.一个国家,很多人.然后,您可以定义从人到国家的关系,这将是一对一的关系.一个人,一个国家.如果您将此定义为一对多关系,您最终会得到事实上的多对多关系(因为人们可以拥有多个国家,一个国家可以拥有多个人).它并不像看起来那么复杂.
现在,在定义了两个关系之后,您可以将它们设置为彼此“反向关系”.对其中一个关系执行此 *** 作,另一个将自动设置.执行此 *** 作后,CoreData将在您将此人添加到国家/地区列表时更新Person的国家/地区.
有关详细信息,请参见https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html.
总结以上是内存溢出为你收集整理的iphone – CoreData实体和属性之间的关系全部内容,希望文章能够帮你解决iphone – CoreData实体和属性之间的关系所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)