标签:对象 3.5 student 一对多 size blog 应该 The man
什么是多表关联
在处理数据库的关系中,无非只有三种关系
一对一:一个老师只能在一个教室上课,不可能同时在两个教室上课
一对多:一个教室可以有多个学生,但一个学生只能在一个教室
多对多:一门学科可以有多个学生,一个学生也可以学习多门学科
本小节我们主要学习一对多的关联,通过学习一对多来举一反三其他两种关系
给学生关联教室
Type:
添加数据
ClassRoom *room = [kManagedObjectContext getManagedObjectModel:@"ClassRoom"]; room.roomNumber = @"1302"; Student *student = [kManagedObjectContext getManagedObjectModel:@"Student"]; student.name = @"李四"; [room addStudentObject:student]; // student.classRoom = room; [kManagedObjectContext save];
注意上面注释的那行代码,如果不写的话只是把学生加到了这间教室,但是并没有指定这个学生属于哪间教室,所以学生的classRoom属性在数据库中为null
很显然这是不符合常规逻辑了,既然学生与教室已经进行了一对多的关联,那么把学生加到教室自然就应该知道这个学生属于哪间教室
那么如何不写student.classRoom = room
也能让学生的数据库表格中的classRoom有对应的值呢?
我们需要在模型文件的关联中设置反转属性
什么是删除关联
模拟真实需求:
设置教室实体中的删除关联为Cascade(级联),设置学生实体中删除关系为no Action(表示删除学生不会对教室有影响)
标签:对象 3.5 student 一对多 size blog 应该 The man
原文地址:https://www.cnblogs.com/edensyd/p/9200738.html