合并对象而不是连接表:这是不好的做法吗?

Kie*_*ews 4 php database codeigniter

这是不好的做法,我是否应该为了提出这段代码而被枪毙?

function get_business_addresses($business_id) {

    $query = $this->db->get_where('contact_business_addr_rel', array('business_id'=> $business_id));

    if ($query->num_rows() > 0) {
        foreach ($query->result() as $row) {
            $address_id = $row->address_id;
            $address_type_id = $row->address_type_id;
            $this->db->select('type');
            $q = $this->db->get_where('contact_business_address_type',array('id'=> $address_type_id));

            $query = $this->db->get_where('contact_business_addresses',array('id'=> $address_id)); 

            if ($query->num_rows() > 0) {
                foreach ($query->result() as $row) {

                    $row2 = $q->row();
                    $obj_merged = (object) array_merge((array) $row, (array) $row2);
                    $data[] = $obj_merged;
                }

            }
        }
    }
    return $data;
}
Run Code Online (Sandbox Code Playgroud)

zeb*_*h49 6

大概.我不能肯定地说,但看起来它应该比使用JOIN慢得多.

我会说基准它是肯定的,但我遵循的经验法则是"如果它可以在SQL中干净地完成,那么数据库引擎可能会做得比我更好".