2010-12-29 3 views

답변

0

다른 레코드 추상화 (ORM) 레이어를 사용하면 대부분의 시간을 지불 할 수 있다고 생각하기 때문에 활성 레코드를 사용해야한다고 생각합니다.

1

질문은 매우 모호하며 사용 사례에 따라 다릅니다.

어쨌든, 나는 내장형 데이터베이스 액세스보다 더 선호한다. 왜냐하면 단순히 (IMO 이상한 방법으로) CI의 DB 액세스로 작업하는 대신 쿼리를 작성하기 때문이다. 이것은 CI 구현보다 훨씬 더 많은 OO 느낌을 가지며 일반 SQL (복잡한 조인, 하위 선택,보다 진보 된 WHERE 조건)과 동일한 작업을 수행 할 수 있으므로 매우 강력합니다.
쿼리가 커밋되기 전에 액션을 수행 할 수 있음을 의미하는 쿼리의 프로세스로 넘어갈 수 있기 때문에, 커밋 된 후 규칙을 적용하는 등 많은 이점이 있습니다. 나는 이것을 CI에서 쉬운 방법으로 보지 못했습니다.
내가 말하는 내용을 보려면 문서의 예제를 읽으십시오.

Doctrine에는 CI와의 통합이 쉽지 않으므로 (인터넷에서 많은 게시물을 볼 수 있고 심지어 여기에서 볼 수있는 게시물도 많음) 멋진 새 규칙을 배울 필요가 없습니다.

사용자가 선택한 모든 ORM은 매우 가벼운 프레임 워크에 대한 오버 헤드 (CI의 기본 풋 프린트와 비교하여)가 큽니다. 따라서 강력한 데이터베이스 기능과 더 많은 추상화를 위해 경량 성을 희생합니다.

1

저는 액티브 레코드를 선호합니다. 이미 그곳에 있으며, 나의 필요를 충족시키지 못한 상황에 직면하지 않았습니다. CodeIgniter 위에 다른 ORM을 사용하지 않았지만 대부분의 경우 불필요한 레이어가 추가 될 것으로 생각됩니다.

기본 제공 Active Record 도구가 제공하지 않는 기능은 무엇입니까?

+2

액티브 레코드는 하나의 패턴 일 뿐이며, ORM 도구는이 패턴을 지원하지만 더 많은 것을 추가합니다 (클래스에 테이블 구성과 유사). CI의 표준 Active Record 클래스는 기본 인터페이스 만 제공합니다. – thomaux

0

하나의 옵션은 DataMapper의 ORM입니다 [? CodeIgniter를위한 ORM]의

http://datamapper.exitecms.org/

+1

그 이름은 오해의 소지가 있습니다. DataMapper 패턴은 ActiveRecord 패턴을 구현하지 않습니다. – beberlei

관련 문제