2013-03-09 1 views
-1

저는 opencart (전자 상거래 용 오픈 소스 프레임 워크)를 사용하고 있습니다.mongodb 및 PHP 전환

데이터 소스로 mysql 데이터베이스 만 사용합니다.

그러나 현재 사이트 트래픽 때문에 noSQL (Mongodb)을 사용하여 효율성을 높일 수 있다고 확신합니다. 그게 굉장히 좋지만 문제는 어떻게하면 Mongodb를 통합하여 MySQL과 함께 사용할 수 있을까요?

나는 주변을 둘러보기 시작했고지도 작성을 위해 만간고 (Mandanto) (http://mandango.org/)를 발견했으며 doctrine보다 성능이 뛰어나다.

그러나 데이터를 매핑하는 방법에 관해서는 머리를 쓸 수 없습니다. 나는 ODM이 객체를 사용하는 것처럼 보이지만이 경우에 내 모델 객체를 사용할 때 원시 SQL 쿼리를 기반으로하지 않을 것입니다. 아이디어를 얻으려면 현재 Opencart에 원시 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() . "'" 
    ); 
} 

답변

2

저는 PHP 전문가는 아니지만 MongoDB와 MySQL을 모두 사용하는 시스템을 실행 해본 경험이 있습니다.

데이터 액세스 개체에 대한 인터페이스를 만든 다음 MySQL 또는 Mongo에 대한 특정 구현을 사용하는 것이 좋습니다. 예를 들어 :

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

은 그럼 당신은/MySQL을 /가 MongoDB를 읽거나 쓸 구현 읽거나 쓸 구현을 할 수 있습니다.

ODM이 필요하지 않을 수 있습니다. 대신 데이터를 객체에로드 한 다음 객체로 수행해야하는 모든 작업을 수행합니다.