私は他の誰かがコーディングしたプロジェクトを修正しようとしています。mysqlに短い番号を格納するのに最適な方法
編集ユーザープロフィールページには、以下のようなものがあり、ユーザーが教育レベルで選択できるオプションのラジオ選択ボックスがすべて表示されます。これは1アイテムです。そのように多くのアイテムがありますここでの回答は、このコードの他の多くの機能にも適用できます。
多くのプロファイルフィールドに対して配列を使用した場合、可能な回答が格納されますが、ユーザーはこの場合でも1つの回答しか選択できません。したがって、教育の場合、7つの可能な回答があり、配列の数字に対応する数字がmysql DBに格納されていれば、この1の数字をvarchar 255の長さとして保存することができません。
長さが1のvarcharとして格納するか、列挙型を使用して7つのオプションをリストするか、それとも何か他のものをリストする必要がありますか?そのための教育
<?PHP
// Array of possible education profile selections
$arr_education[1]="No Answer";
$arr_education[2]="High school";
$arr_education[3]="Some college";
$arr_education[4]="In college";
$arr_education[5]="College graduate";
$arr_education[6]="Grad/professional school";
$arr_education[7]="Post grad";
// shows the array above as checkboxes on a form
foreach($arr_education as $ind=>$val) {
echo '<input type="radio" name="education" value="' .$ind. '" ' if($education==$ind){ echo "checked";}. '>' .$val. '<br>';
}
//on a users profile page there would be something like this
$education = 7; // seven would be Post Grad from our array above
echo $arr_education[$education]
//Now here is the mysql table, they chose to use a varchar(255) which seems retarded, using the above code, the max result would be 1 charachter long
education varchar(255)
?>
これはMAXの長さが255のvarcharです。数値を格納するのは良い方法ではありませんが、必要な長さが短ければ少ないほど使用されます。 – pavium
@pavium:MySQLがメモリ内にテンポラリテーブルを作成するとき(結果セットをソートするときなど)、それはCHARカラムであるかのように、各行に完全な255バイトを割り当てます。 –