저는 꽤 오랫동안 프로 시저 코드를 프로그래밍 해왔고 최근에는 MVC를 배우고 있습니다. 몇 가지 프레임 워크를 시험해 보았고, 내외부를 배우기 위해 처음부터 직접 작성하고 싶다고 결정했습니다. 지금까지 MVC 프레임 워크가 잘 작동하고 있습니다.하지만 관련 테이블을 쿼리하는 가장 좋은 방법을 결정하려고합니다.MVC : 최상의 쿼리 방법 관련 테이블
은 지금부터, 내 member
모델에서, 나는이 회원의 목록을 얻으려면 다음을 사용 자신의 rank_name
SELECT m.*, r.`name` AS rank_name
FROM `{$this->table}` AS m
LEFT JOIN `ranks` AS r
ON r.`id` = m.`rank_id`
이 잘 작동하지만,해야하는데 방법은 아닌 것 같아 MVC에서 완료되었습니다. CakePHP는 같은 프레임 워크 작업을 한 후, 나는 member
hasOne의 rank
(또는 그것을 hasMany의 member
rank
입니까?) 알고
내가 생각하는 유일한 대안이 메소드를 호출 한 후 member
모델에서 자체적으로 members
표를 조회하고 있었다
// member model
SELECT *
FROM `{this->table}`
while($row = $result->fetch_assoc()) {
$data []= $row;
$data['rank_name'] = $this->Rank->get_name($row['rank_id']);
}
을하지만 이것은 각 구성원에 대해 별도의 쿼리를 실행하는 데 매우 효율적이 될 수 없습니다 다음 rank
모델과 같이, 각 행의 순위 이름을 얻을 수 있습니다. 내가 생각한 유일한 다른 개념은 MySQL의 IN(x, y, z)
함수를 사용하여 순위 이름을 얻은 다음 배열을 어떻게 든 병합하는 것입니다.
MVC에서 가장 좋은 방법은 무엇입니까?