Header Ads

코드이그나이터, SQL 대신 CSV 로 대체


GAE 요금체계상 SQL 쿼리당 돈을 받는것도 있기 때문에
SQL 쿼리가 빈번하면 요금이 올라간다.. ㄷㄷ

간단한 정보조차 
MySQL 쿼리로 불러오도록 설계 했는데
생각해보니, 요금 압박이 클것만 같았다.

그래서
여러 테이블을 JOIN 안해도 되는 Relation 없는 부분은
MySQL DB 대신 csv 파일에서 불러오도록 했다.

간단히 Model 부분만 수정하면,
View 나 Controller 부분은 수정하지 않아도
DB에서 읽은것처럼 잘 작동한다.

public function get_file()
{
    // fopen 함수로 파일을 연다.
    $fp = fopen("./assets/csv/file_name.csv", "r");
    
    // 헤더가 되는 첫줄을 읽는다.
    $header = fgetcsv($fp);

    // return 할 배열을 만든다.
    $data = array();

    // 파일을 읽는다.
    while ($row  = fgetcsv($fp))
    {
        $arr = array();
        foreach ($header as $i => $col)
        {
            $arr[$col] = $row[$i];
        }
        $data[] = $arr;
    }

    // fopen 함수를 닫는다.
    fclose($fp);

    // 결과를 return 한다.
    return $data;
}

파일은 DB 에서 CSV 로 변환해야 하는데,
MySQL 을 쓴다면 Workbench 에서 Export 하면 쉽게 할 수 있다.

No comments

Copyright 2016, minki. All rights reserved. Powered by Blogger.