부서 (ID, 이름), 코스 (ID, 이름), 직원 (ID, 이름, dept_id) 및 staff_to_course (staff_id, course_id)의 4 개의 테이블이 있습니다. 나는 SQL 쿼리에 가입 할 수JOIN 쿼리의 데이터 OOP 표현
| Course 1 | Course 2 | Average |
----------------------------------------
Dept 1 | 20% | 30% | 25% |
----------------------------------------
Dept 2 | 10% | 40% | 25% |
----------------------------------------
All | 18% | 33% | 25% |
----------------------------------------
하지만 I : I는 각 부서에서 많은 사람들이 (그리고하지 않은 경우) 각 코스에 대한 각 코스뿐만 아니라 각 부서의 평균과를 완료하는 방법을 표시해야 내부적으로 데이터를 표현하기 위해 객체를 적절히 사용하는 방법에 대해 혼란 스럽다.
저는 현재 코스 및 부서 객체를 가지고 있지만 $course->percentComplete($dept_id)
과 같은 작성 방법은 다소 틀렸고 $course->percentComplete('all')
느낌이 훨씬 더 잘못되었습니다. 코스 평균 수치는 코스 인스턴스 객체의 합리적인 속성이 아니지만 부서 객체에 두는 것은 분명히 틀린 두 클래스에 걸쳐 코드를 복제하는 것을 의미합니다.
내가 여기 위반하고있는 몇 가지 기본 OO 원칙이있을 것으로 기대하지만 나는 그것이 무엇인지 알 수 없습니다.
Fabrizio에게 감사하지만, 정적 방식을 사용하는 것이 본질적으로 OOP를 포기하고 기능으로 돌아가는 것처럼 보입니다. – Tamlyn