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]
'Technology > Algorithms' 카테고리의 다른 글
Algorithms / 알고리즘 복잡도 분석 (0) | 2010.02.11 |
---|---|
Algorithms / pseudocode(슈도코드) (0) | 2010.02.11 |
Algorithms / 직사각형, 원 면적과 넓이 구하기 (0) | 2009.12.05 |
Algorithms / 온도 변환 소스코드(섭씨, 화씨) (0) | 2009.12.05 |
Algorithms / 16진수를 10진수로 변경 (0) | 2009.12.05 |