1

これがばかげた質問であるならば申し訳ありませんが、私はこれに不慣れです。顧客が後で情報を取得できるように、すべての顧客のさまざまな連絡フォームからのすべての情報をデータベースに保存したいと思います。お問い合わせフォームごとに、フィールドの数が異なります。理想的には、このすべての情報を1つのMYSQLテーブルに格納しますが、前述したように、各顧客の連絡フォームには異なる数のフィールドがあります。

ID、customerID、dateTime、dataのフィールドでデータベースを作成することを考えていました。データはお問い合わせフォームのhtmlになります。ただし、これはベストプラクティスではないと確信しています。また、すべての連絡フォームをcsvなどで顧客にダウンロードするオプションを提供することもできません。顧客ごとに異なるテーブルを作成することも望んでいません。また、「field1」、「field2」、「field3」などのテーブルを作成することもそれほど適切ではありません。何か案は?

4

3 に答える 3

1

リレーショナルである必要がない場合は、それで問題ありません。簡単にクエリを実行することはできません。

キーを使用してフォームとフィールドにリンクし、回答を別のテーブルに保存できます。

または、MongDBのようなKeyValueストアタイプDBを使用すると、スキーマを気にせずにすべてのデータを保存できます。

于 2011-06-10T16:35:24.010 に答える
1

user_dataという別のテーブルを作成します。その中に、持っている:

id, user_id, data

次に、10個のフィールドを含むフォームに入力すると、このテーブルに10個のエントリを入力できます。ユーザーのデータをプルするときは、user_id=ユーザーIDを持つuser_dataテーブルからもデータをプルします。

それ以上が必要な場合は、「field_name」フィールドなどを追加することもできます。

id, user_data, field_name, data
于 2011-06-10T16:35:58.230 に答える
1

MySQLデータベースを使用して、多くのテーブルを相互に関連付ける目的の情報のスキーマを作成できます。

データベース設計に関する別の議論は次のとおりです。 データベース設計のベストプラクティス

テーブルが1つだけである必要がある場合、もう1つの選択肢は、IDを自動的に作成してから、フィールドを不要にすることです。このように、顧客が一方のフォームにもう一方のフォームに入力する前に、それがあなたを混乱させることはありません。次に、IDをセッション変数として保存し、データベースへのさまざまなINSERTステートメントに再利用できます。

テーブルを照会してファイルを生成する目的の形式で出力する顧客用のダウンロード関数を作成できます。

于 2011-06-10T16:37:36.903 に答える