2011-09-10 10 views
1

드롭 다운 목록을 만드는 방법을 알고 있습니다. 그러나 입력 중 하나가 드롭 다운 목록의 상태 (2 글자 단어) 인 양식을 작성해야한다면 상태를 하나씩 입력하거나 DB에 상태를 저장해야합니까?상태 드롭 다운 목록 만들기

+0

다른 용도로 사용 하시겠습니까? – kinakuta

+0

글쎄 ... 글쎄 ... 실제로 드롭 다운을 채우기위한 DB에 하나의 테이블이 있습니다.하지만 사용자가 드롭 다운에 더 많은 옵션을 추가 할 수 있기 때문에 논리적으로 보입니다. – adit

+0

테이블에 대해 신경 쓰지 않을 것입니다. 당신이 다른 용도로 DB에서 그것을 사용하지 않는 한 주. 그렇지 않으면 잔인합니다. – kinakuta

답변

0

이것은 다소 이상한 질문입니다. 물론 당신의 프로젝트에 따라.

성능과 속도가 필요한 경우 드롭 다운 목록을로드 할 때 (나는 <select />을 의미한다고 가정 함). 그런 다음 배열 형태로 별도의 .php 파일에 넣을 수 있습니다. 그래서 나중에 foreach()으로 반복 할 수 있습니다. 이 방법은 반드시 더 빨리로드되고 DB에서 50 개 상태를로드합니다.

INC-states.php :

$states = array(
    1 => 'Alabama', 
    2 => 'Indiana', 
    3 => 'Nevada' 
    // etc.. 
); 

양식을 생성 :

echo '<select name="states">'; 
foreach ($states as $key => $state) { 
    echo '<option value="' . $key . '">' . $state . '</option>'; 
} 
echo '</select>'; 

그래서 당신은 단지 키를 저장합니다 게시 후. 나중에 키를 통해 올바른 상태를 다시 얻을 수 있습니다.

include('inc-states.php') 

$user['state'] = 2; // Lets make a default for this example 

print $states[$user['state']]; // outputs Indiana 

DB 방법에도 동일한 기본 아이디어가 유지됩니다. 이것 만이 더 빠를 것입니다. 물론 관리 콘솔을 통해 상태를 편집 할 수 있기를 원하지 않는 한.

참고 : 사실 두 개의 문자 단축 코드 만 사용했지만 내 예제 배열은 전체 제목으로 더 예쁘게 보입니다. 어쨌든, 여러분도 아시다시피 배열의 어떤 형식 으로든 상태를 놓을 수 있습니다.

1

상태 목록은 실제로 자주 업데이트되지 않으며 데이터베이스를 저장하기 위해 과도하게 사용 된 것처럼 보입니다. 백엔드 기술이 무엇인지 모르겠지만 여러 위치에서 사용할 수있는 상태 드롭 다운 컨트롤 (또는 사용자 환경의 컨트롤에 전달 된 항목)을 만들 가능성이 큽니다. 드문 경우이지만 상태를 수정해야합니다. 목록은 한 위치에서만 처리됩니다. 또한 상태를 일종의 구성 시스템에 목록으로 저장할 수도 있지만 스택에 대해 더 알지 못하면 더 자세한 정보를 제공 할 수 없습니다.

+0

PHP이고 MySQL은 db – adit

+0

이 경우에는 상태 드롭 다운을 포함하는 파일을 포함시킬 수 있습니다. 콜이 제안한대로 반복 할 수 있습니다. –

0

만약 당신이 상태 텍스트를 저장하는 대신에 참조를 위해 ID를 저장하고 싶다면 그 방법으로 관계형 데이터베이스를 관리하는 것이 더 쉬울 것입니다.

+0

테이블에 2 자 스테이트를 저장하는 것은 룩업 테이블을 참조하는 tinyint를 저장했을 때보 다 1 바이트 이상 걸릴 가능성이 높으며 누군가가 선택한 상태를보고 싶을 때 언제든지 참여해야합니다. 조회 테이블. 이 간단한 경우에, 나는 정규화가 바람직하다고 생각하지 않는다. –

+1

DB에서 두 문자가 ID보다 공간을 적게 차지합니다. 두 글자가있는 테이블에 ID와 링크를 저장하는 것보다 빠르고 간단하고 두 글자를 저장할 공간이 적습니다. –

+0

사실, 나는 주 데이터베이스를 가지고 있으며, 그 db에, 나는 주 코드, 주 전체 이름, ID, 위도, 긴, 등 ....네가 두 글자 만 사용한다면, 나는 동의한다. 그것들을 ID와 함께 데이터베이스에 저장하는 것은 의미가 없을 것이다. – NateB