2011-09-10 15 views
1

ドロップダウンリストの作成方法はわかっていますが、入力の1つがドロップダウンリストの状態(2文字の単語)であるフォームを作成する必要があった場合は、状態を1つずつ入力するか、状態をDBに保存する必要がありますか?状態ドロップダウンリストの作成

+0

あなたは何かのためにデータベースを使用していますか? – kinakuta

+0

まあ...実際には、DBにドロップダウンを設定するためのテーブルが1つありますが、ユーザーがドロップダウンにもっと多くのオプションを追加できるので論理的です。 – adit

+0

私はテーブルを気にしませんあなたが他の目的のためにあなたのデータベースでそれを使用しようとしていない限り。そうでなければ過労です。 – kinakuta

答えて

0

これはちょっと奇妙な質問です。あなたのプロジェクトに応じて。

パフォーマンスとスピードが必要な場合は、ドロップダウンリストを読み込むときに(私は<select />を意味すると仮定しています)。次に、それらを配列形式の別の.phpファイルに入れることができます。だから後でforeach()でそれらをループすることができます。このメソッドは確実に高速にロードされ、DBから50の状態をロードします。

INC-states.php:だから、あなたはキーのみを保存します投稿後

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

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

フォームを生成します。後で再びキーを使用して正しい状態を得ることができます。

include('inc-states.php') 

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

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

DBメソッドでも同じ基本的な考え方が残ります。これはたぶん高速です。もちろん、何らかの管理コンソールを使って状態を編集できない限り、

注:実際には、2文字のショートコードだけがありますが、私の例の配列は完全なタイトルでより美しく見えます。とにかく、おそらくあなたが知っているように、配列をどのようなフォーマットにでも置くことができます。

1

状態のリストは実際には頻繁に更新されず、データベースを使用してそれらを格納することは過度のようです。私はあなたのバックエンド技術が何であるか分かりませんが、私は州のドロップダウンコントロール(または環境内のコントロールに渡されたもの)を複数の場所で使用できるように作成する可能性が高いため、まれにインスタンスを変更する必要がありますリストは、単一の場所でのみ実行されます。また、ある種の設定システムに状態を​​リストとして格納することもできますが、スタックの詳細を知らなくても詳細を与えることはできません。

+0

PHPでMySQLはdbにあります – adit

+0

この場合、あなたの状態のドロップダウンを含むファイルを含めることができます。あなたはKalleが提案したように、それらをループに入れることができます。 –

0

私は状態のテキストを保存するのではなく、参照のためにIDを格納したい場合、その方法でリレーショナルデータベースを管理する方が簡単です。

+0

テーブルに2文字の状態を格納するのは、ルックアップテーブルを参照するtinyintを格納した場合と比べて1バイトだけ多くなります。これは、誰かがどの状態を選択したのかを見たい場合は、ルックアップテーブル。この単純な例では、正規化が望ましいとは思わない。 –

+1

DBでは、2文字がIDよりも少ない領域を占有します。 2つの文字が格納されているテーブルにIDとリンクを格納するよりも、格納が速く、簡単で、スペースを少なくします。 –

+0

非常に真実ですが、私は州のデータベースを持っており、そのデータベースには州のコード、州のフルネーム、ID、緯度、長文などがあります。もしあなたが2文字だけを使用しているのであれば、私は同意します。それをIDでデータベースに格納するのは意味がありません。 – NateB

関連する問題