对于面向对象逐渐似乎有了一点思路,但似乎又是捕风捉影,没有经过实践的认识总是纸上得来终觉浅。
面向对象编程的思想关注点是理清系统中存在的对象,通过对象的协作完成系统功能。
问题场景:班级管理。
对象分析: 学生,班级,班委,班主任。
数据库中,我设计了4张表;
1、学生表
2、班级表(假设一个班只有一个班主任)
3、班委表
问:当获取某个班级的所有学生时,因为之中存储的都是学生的id或者学号,如果需要学生的名字一般的做法是直接join。
但是面向对象,他们都是对象。应该如何操作?
<?php class BanJi { private $id; private $name; function __constructor($id){ $this->id=$id; } ...; public function getStudents(){ $sql="select * from students where class_id='".$this->id."'"; $db=new mysql(); return $db->query($sql): } } $banJi1= new BanJi(11); $students=banJi1->getStudents(); //??? ?>
面向对象,实体型映射时,遇到多表。。只有两招:
1:通过多表查询SQL语句,最终转化表处理,也可以转成新实体(集合多个表属性的实体)。
2:参考第1条。
能具体点吗?
第一条不太明白~ 呵呵
如果是join完了,找到名字 就没对象什么事了~ 对吧?
转成新实体的意思是?
根据sql出来的学生id,在sql一次弄成一个学生对象?
@kelite: 那就直接join完后处理就可以了。不用实体。