Technology/Algorithms
Algorithms / EAV(Entity, Attribute, Value)모델에서 배열구조 만들기
Yonglae Cho
2011. 12. 14. 14:52
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]