当前位置:编程学习 > wap >>

IOS CoreData 多表查询(上)

在网上搜索了下,发现只有部分讲解CoreData关系的,但对多表之间的查询并没有相应的介绍。

因此操作自己写了个。

先创建几个表。

1、部门表:department

      dp_id  Integer  primary key

      dp_deptname   varchar(20) //使用coredata实体创建时用string就行

图:

\

 

2、员工表:employee

     em_id Integer  primary key

     em_name  varchar(30)

     em_易做图   integer   // 0:保密,1男,2女,默认为0

     em_age  integer

     em_bankCardid varchar(20) //卡号

     dp_id_emfk integer //外键用于关联部门表(1VN)

     pt_id_emfk integer //外键用于关联职位表(1VN)

     bk_id_emfk integer// 外键用于关联开户行(1VN)

 

\ 

3、职位表:post

     pt_id Integer  primary key

     pt_name varchar(20)   //职位名称

     dp_id_ptfk integer //外键用户关联部门表(1VN)

      sy_id_ptfk integer //外键关联工资等级表(1V1)

\

 

4、工资等级表:salary

     sy_id  integer primary key

     sy_scale  double  //比例 (用于后属算奖金)

     sy_level varchar(2)  //A,B,C,D..等等级

 

\ 

5、开户银行:bank

     bk_id integer primary key

     bk_name varchar(50)   //银行名称

     bk_address varchar(200) //开户地址

 

\ 

 

表建好了我们来看一表之间的关系。

部门和员工:一个部门有多个员工,而一个员工只能呆在一个部门(如果同时在两个部分哪是兼职或者能人不在讨论范围),因此部门和员工的关系为1对多关系。

部门与职位:一个部门有多个职位,而一个职位只能在一个部门。因此为:1对多关系。 

部门与工资,开户银行,没有直接关系。(当然部门可能与奖金有挂勾,这个也不在当前讨论范围)

 

员工与职位:一个员工只能身处一职(能人,兼职除外),而一个职位可以由有多名员工。(如程序员职位,哪可以多名),因此为多对一关系。

员工与工资等级:一个员工只能对应一个工程等级和比例,而一个等级比例可以由多名员工拥有。因此为多对一关系。

员工与开户行:当公司替员工开卡的时候,哪么一个开户银行就有多个员工。所以这里会有多对1关系。

 

职位与工资等级:一个职位只配备一个工资级别,同时一个工次级别也只属于一个职位。因为为1对1关系。

职位与开户行没有直接关系。

开户行和工资等级也没有直接关系。

 

下面来构造测试数据

部门数据:

       1       HR      //人力资源

       2       DEV    //开发

       3       POD   //运维

 

 
 

\

员工数据:

      1     张三   男 20   46326587439043   2     3   2             //张三是开发部的开发工程师

      2    李四    女  18    32565443246567  1     2   3            //李四是HR的人事经理

      3    欧阳    女   26   14354654656767  3    9    3           //欧阳是运维的大客户经理

      4    欧阳     女   22   98734298437433  2   6   3            //同名欧阳是开发部测试工程师

\

 

职位数据:

      1    行政专员             1       NULL

       2   人事经理              1      3

       3    开发工程师         2      2

       4    架构师                 2      NULL

       5    项目经理             2      NULL

       6    测试工程师         2     1

       7    销售代表             3    NULL

       8    销售经理             3    NULL

       9    大客户经理         3       4

 

 

\ 

工资等级数据:

      1     0.1    D     

       2     0.15    C

      3        0.4   B

      4        0.8   A

 

补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,