EAV(Entity, Attribute, Value)구조는 Flexible하게 데이터를 저장할 수 있는 장점이 있으나, 데이터 검색과 테이블 형태로 표현하기에는 최악의 구조이다.

EAV모델의 DB 스키마 구조에서 빠르게 배열형태 혹은 테이블형태로 표현하려면 어떻게 해야할까?

1. 검색하고자 하는 데이터 항목들을 한꺼번에 가져올 수 있는 쿼리를 만든다.
2. DB로부터 가져온 전체 결과 쿼리를 배열로 재구성한다.
//DB에서 Subject와 DE의 Value, 값 전체를 가져옴(14초~16초 소요)
$Result_List = db_query( )                

//Table 구성을 위해 배열 생성
foreach $Result_List as $result               
        $i = $Subject_List.find($result->subject);
        $j = $DE_List.find($result->de);
Array[$i][$j] = $result->value;
//Table 구성 foreach $Subject_List as $subject foreach $DE_List as $de print Array[$subject][$de]
 
 

+ Recent posts