많은 Eloquent 모델로 Laravel 응용 프로그램을 개발 중입니다. 이러한 능변 모델 (예 : 사용자, 게시글 등)에는 모델에 느슨하게 연결된 쿼리 (원시 SQL)가 많이 포함되어 있습니다.Laravel, 여러 DB 테이블과 관련된 쿼리에 가장 적합한 위치/이름 지정
일부 쿼리는 '한 테이블에서 정보를 얻고, 다른 테이블과 세 번째 테이블에서 정보를 얻습니다.'와 같은 쿼리가 있습니다. 이제 User 모델과 같은 모델은 getAllUncompletedActionsForUser
또는 getSessionsDurationsPerUser
과 같은 많은 메소드를 가질 수 있습니다. 나는 웅변적인 모델이 수천 줄의 코드를 가지면 좋지 않다고 생각한다.
이 모델을 분할하는 데 걸리는 시간은 어디일까요? 다양한 테이블을 다루는 데이터베이스 결과를 반환하는 클래스의 이름을 어떻게 지정 하시겠습니까?
특징이 답이라면 잘못된 질문을하고있는 것입니다. –
@ tereško 귀하의 답변을 보았을 때 귀하의 솔루션은 훨씬 더 적합한 솔루션입니다. +1 데이터 맵퍼에 대해 몰랐습니다. – Spacemudd
[테이블 게이트웨이] (https://martinfowler.com/eaaCatalog/tableDataGateway.html) 및 기타 옵션과 같은 다른 패턴도 있습니다. 어딘가에서 [이 책] (https://www.amazon.co.uk/Enterprise-Application-Architecture-Addison-Wesley-Signature/dp/0321127420)을 찾아보십시오. 사람들이 특성을 너무 많이 싫어하는 이유는 실제로 엔진 수준의 복사 붙여 넣기 때문입니다. PHP 인터프리터는 파싱되기 전에 코드 조각을 물리적으로 복사합니다. –