2011-04-21 2 views
1

현재 포유류의 특정 유형을 처리하는 codeigniter 응용 프로그램을 작성 중입니다. 사용자가 새 레코드 (포유류)를 추가하면 '품종 유형', '성별'등의 목록이 제공됩니다. 이러한 유형은 별도의 데이터베이스 테이블에 저장됩니다.조회 테이블에 대한 쿼리가 너무 많으며 누구나 대안을 제안 할 수 있습니까?

는 현재 이러한 얻을, 나는 다음과 같은 별도의 기능이 있습니다

$this->Mammal->get_list_of_breeds() 
$this->Mammal->get_list_of_genders() 

이러한 호출 쿼리의 각을, 저를 조회 할 최대 7 또는 8 개의 서로 다른 조회가있을 수 있습니다. 누구든지 내 응용 프로그램이 크게 느려지거나 데이터베이스에서 너무 많은 쿼리가 발생할 경우 알 수 있습니까? 대부분의 개별 테이블에서 최대 레코드 수는 300 레코드 미만입니다.

쿼리를 단일 함수로 통합하고 PHP를 사용하여 조회 필드를 분할하면 더 나은 방법이 될 수 있습니까?

어떤 생각이나 생각이라도 대단히 감사합니다. 당신이 자신을 주석으로

+0

갑자기 생각이 떠 올랐습니다. 나는 모든 조회 테이블을 하나의 테이블에 유형 필드와 함께 넣을 수 있을까요? (유형은 '번식', '성별'등) – bytebomber

답변

1

하나의 아이디어가 옵션의 작은 세트의 일부를 가지고 배열에 넣어하는 것입니다 특히 사용자가 변경할 수없는 경우 예를 들어, 젠더는 아마 배열에있을 수 있습니다. 내가 아는 한 두 가지 옵션 만 있습니다. 다른 유사 옵션 세트가있는 경우 해당 배열을 만들 수도 있습니다.

하지만 300 개의 레코드까지도 엄청난 양의 데이터가 아닙니다. 나는 당신이 다음 페이스 북을 만들지 않을 것이라고 생각한다. 그래서 당신이 필요로하는 옵션을 얻는 몇 가지 명확한 쿼리를 작성하는 것은 큰 일이 아닐 것이다.

개인적으로 모든 것을 하나의 테이블에 넣지는 않겠습니다. 큰 일반 테이블은 일종의 호기심처럼 보이고, 당신은 여전히 ​​같은 양의 데이터를 얻고있을 것입니다. 별도의 테이블을 가지고 쿼리를 결합하여 동일한 작업을 수행 할 수 있습니다.

0

, 그래 참으로 당신은

그래서 당신은 테이블 호출 한 것 포유류

... 하나 개의 테이블에 모든 것을 넣어해야합니다 그리고 당신은 필드 거라고 : 성별, 품종 등 ...

지금이 지금부터 PHP로 프로그래밍 할 때 하나 개의 쿼리를 수행하고 다음과 같이 모든 것을 표시 할 수있는 훨씬 더 쉽게 :

$query="SELECT * FROM `mammals`"; 
$query_exec=mysql_query($query); 

while($result=mysql_fetch_array($query_exec)) 
{ 
print "gender: ".$result['gender']." breed: ".$result['breed']; 
} 

점등 설명 : 쿼리는 포유류라는 테이블에서 모든 것을 가져옵니다. 그런 다음 배열에 여전히 결과가있는 한 계속합니다. 가져 오기 배열은 데이터를 변수에 넣고 모든 필드는 $ result []에서 읽을 수 있습니다.

나는이 매우 명확한 설명 아니라는 것을 알고,하지만 내 마음이 늦은 시간에하지 cleares입니다 :/

관련 문제