アンケートフォームなどで、radioボタンなどのvalueとして設定される数値と
textフィールドに入力されるテキストが値として混在しますが
こういうのはどこで分割するのがいいんでしょうか?

例えばこんなやつです。
<input type="checkbox" name="q1[]" value="1">選択肢1
<input type="checkbox" name="q1[]" value="2">選択肢2
<input type="checkbox" name="q1[]" value="3">選択肢3
<input type="checkbox" name="q1[]" value="4">その他<input type="text" name="q1[]">

@HTMLの時点でname属性を変える(q1_4_txtなど)
ADBのテーブルを数値用と文字列用に2つ作り、POSTされたデータをPHPで判定して振り分ける
BDBにまとめて放り込み、selectするときに上手いことやる

とりえあず@のようにnameを変え、select文を
 select name, value, count (value) from table group by name, value
とし、PHPで全件に対して
valueが数値の場合:  $result[name][value] = count;
valueが文字列の場合: $result[name][] = valie;
と代入して使用しています。

もしかして効率が悪いことしているのかと不安に感じるので、皆さんは普段どうしていますか?
こういうフォームを扱う時のコツなどありましたら教えてください。