Mongodb和PHP的过渡



我正在使用opencart(一种用于电子商务的开源框架)。

只使用mysql数据库作为数据源。

然而,由于目前的网站流量,我相信我们可以通过使用noSQL (Mongodb)来提高效率。这是伟大的,但问题是我将如何去和整合Mongodb使用它与Mysql一致?

我开始四处寻找,发现Mandango (http://mandango.org/)用于映射,并且比doctrine有更好的性能。

然而,我不能得到我的头周围,我将如何映射数据。看起来ODM使用对象,但是当我在这种情况下使用模型对象时,这不是基于原始SQL查询吗?为了给你一个概念,目前openart有一些具有原始SQL查询的模型。下面是客户模型方法的例子。

public function editCustomer($data) {
    $this->db->query(
        "UPDATE " . DB_PREFIX 
        . "customer SET firstname = '" . $this->db->escape($data['firstname']) 
        . "', lastname = '" . $this->db->escape($data['lastname']) 
        . "', email = '" . $this->db->escape($data['email']) 
        . "', telephone = '" . $this->db->escape($data['telephone']) 
        . "', fax = '" . $this->db->escape($data['fax']) 
        . "' WHERE customer_id = '" . (int) $this->customer->getId() . "'"
    );
}

我远非PHP专家,但我有运行使用MongoDB和MySQL的系统的经验。

我建议为你的数据访问对象创建接口,然后为MySQL或Mongo提供特定的实现。例如:

interface iCustomerDAO 
{ 
   public function getCustomer($id);
}
class MySQLCustomerDAO implements iCustomerDAO
{
   public function getCustomer($id) 
   {
      ...
      return $customer;
   }
}

那么你可以有一个读/写MySQL的实现一个读/写MongoDB的实现

可能不需要ODM。相反,您可以将数据加载到对象中,然后对对象做任何您需要做的事情。

相关内容

  • 没有找到相关文章

最新更新