0

フォームがたくさんあるサイトをデザインしています。約 20 の異なるフォームがあり、各フォームには独自のフィールドがあります。したがって、各フォームのテキスト要素を格納するための最適な mysql テーブルの設計を知りたいと思います。フィールド ラベル、プレースホルダー テキスト、評価エラーなどの要素。

 My design now is that i have one table with the following columns:

 Id areaName label placeholdertext errormsg

私のフォームの 1 つで、areaName が「名前」、「年齢」、「性別」に等しいすべての行をロードします (テンプレート フォームに挿入する 3 つのフィールドに対して 3 つの行を取得します。しかし、これがこれを行う最良の方法ですか? ? 英語をサポートするために、areaName _en という名前を付けて、多言語セットアップを検討しています。

4

3 に答える 3

0

最も重要な考慮事項は、データがどのように編成され、論理的にバインドされるか、つまり、どのような関係があるかです。次に、コレクションの大きさになります。たとえば、ユーザーの都市を保存したいFacebookアプリをプログラミングしていて、10000人のユーザーが予想される場合、同じテーブルにテキストフィールドとして場所を保存することはお勧めできません。フィールド「location_id」と別のテーブル「location」があり、IDを介して情報をリンクします。そうすれば、すべての都市を1回だけ保存してから、それを参照できます。

私のポイントは、DBの設計は、速度、サイズ、開発のしやすさ、個人的な好みなど、多くの要因に依存しているということです。

于 2013-02-26T22:44:45.460 に答える
0

これでは、それを行うための一般的な「最良の」方法は実際にはありません。個人的には

forms: form_id,form_action,form_method
forms_inputs: form_id,input_name,input_def_val,input_order,input_required,input_type

これにより、いつでもコントロールパネルを介して任意のフォームを編集でき、forms_inputsの最後にinput_localeを追加するだけでこれらをローカライズできます。

于 2013-02-26T22:21:52.503 に答える
0

そのロジックに従ってデータを保存します。個人ユーザー データ ( UserId、FirstName、MidName、LastName、BirthDate、Gender、UserLanguage、Timestamp ) を格納する別のテーブルを作成するように。他のデータは他のテーブルに格納する必要があり、UserIdキーを介して " User " テーブルに接続できます。「年齢」を保存しなかったことに注意してください。1年も経たないうちに古くなってしまうからです。代わりに生年月日 ( BirthDate ) を格納します。多言語セットアップでは、UTF-8 を使用し、すべての行に言語 ID ("eng" や "spa" など) を格納するだけで、どの言語であるかを常に知ることができます。たとえば、フォーム データを格納するテーブルは次のようになります: MyFormId、UserId、Label、PlaceholderText、ErrorMsg、LangId、

于 2013-02-26T22:48:08.187 に答える