关于核心数据iphone关系的问题

时间:2011-02-02 01:50:32

标签: iphone core-data entity-relationship

我正在处理iphone中的核心数据, 它似乎很好(创建数据库并保存一些数据),直到我发现了一些我还没有得到的东西

  • 我有3个实体(员工,天,中心),其中一个实体与其他实体有一对多的关系,

    ENTITY       RELATIONSHIP      ENTITY
    Employee>>>>days(one to many)>>Days (inverse of Days, employee)
    Employee>>>>centre(one 2 many)>Centre (inverse of Centre, employee)
    

在我的sqlite生成的数据库中,我用sqlite manager(firefox)检查它,并且在(Z_PK,Z_ENT,Z_OPT,ZEMPLOYEE)之后显示一个实体(ZCENTRE)的关系,但是没有按顺序显示(是我的其他实体(Z_DAYS)的预期顺序,它显示在一个属性之后,所以它让我觉得被视为一个属性而不是代码中的一个实体?

在模型的代码中,对于centre.h我有

 #import <CoreData/CoreData.h>
 @class Employee;
 @interface Centre :  NSManagedObject  
 {}
 @property (nonatomic, retain) NSString * centres;
 @property (nonatomic, retain) Employee * employee;
 @end

和模型centre.m

       #import "Centre.h"
       #import "Employee.h"
       @implementation Centre 
       @dynamic centres;
       @dynamic employee;
       @end

这是一个有效的,Days.h和Days.m的代码与preatty大致相同,当然属性的变化,

  • 但是没有以预期的顺序显示在sqlite上? 另外,在sqlite上的employee表中,是否会出现关系?按顺序? (我没有在sqlite管理器上显示它们!)

我必须在模型中调用它们吗? (我想是的!)

for the Employee.h>>>@class Centre;
@class Days;
@property (nonatomic, retain) Centre * centre;
@property (nonatomic, retain) Days * days;

和employee.m

   #import "Employee.h"
   #import "Centre.h"
   #import "Days.h"
   @implementation Employee
   @dynamic centre;
   @dynamic days;
  • 所以再次提出问题:我需要在数据库中显示关系并检查sqlitemanager它们是否正常工作,

好的,非常感谢!

1 个答案:

答案 0 :(得分:1)

要考虑的一些事情:

  • 您是否拥有管理对象模型中定义的所有关系?
  • 您需要NSManagedObject的自定义子类吗?如果您不需要自定义行为,则无需将它们创建为单独的类。如果确实需要,那么实体是否使用上述模型中设置的那些类?
  • 你为什么要关心sqlite数据库呢?它实际上只是一个实现细节,生成的模式不应该与您有关。您是否在代码中遍历这些关系时遇到问题?