1

一部のデータをデータベースに保存しようとしていますが、生産性を最大化するためにデータベースをどのように設計する必要があるかを理解できませんでした...

ユーザーには、フォームのエントリ数を選択するオプションがあります。そして、これらのエントリをデータベースに保存する必要があります。ただし、ユーザーが必要とするエントリの数は不明です。たとえば、1または100にすることができます。

そのようなデータを保存する方がよいでしょうか。

私が念頭に置いているのは、userIDを使用してデータベースにエントリの数を格納し、入力を配列に入れてシリアル化し、データベースに格納することです。

4

3 に答える 3

2

私はおそらく次のことをします:

+---------------+
| Table: users  |
+----+----------+
| id | username |
+----+----------+
|  1 | tanzeel  |
|  2 | john     |
+----+----------+

+-----------------------------------------------+
| Table: entries                                |
+----+---------+------------+-------------------+
| id | user_id | entry_name | single_entry_data |
+----+---------+------------+-------------------+
|  1 |       1 | prop1      | ################  |
|  2 |       1 | prop2      | ################  |
|  3 |       1 | prop3      | ################  |
|  4 |       2 | prop1      | ################  |
|  5 |       2 | prop2      | ################  |
|  6 |       1 | prop4      | ################  |
+----+---------+------------+-------------------+

entriesテーブルには、テーブルのPK(主キー)列へのFK(外部キー)参照であるにn関連付けられた各ユーザーのエントリが格納されます。データを取得する場合は、次のようにselectクエリを実行して、特定のユーザーのエントリを取得できます。user_ididusers

SELECT * FROM entries A
INNER JOIN users B
ON A.user_id = B.id
AND B.id = 1;
于 2012-12-07T13:28:58.283 に答える
1

テキストの説明など、さまざまな入力フィールドタイプに同じオプションがある場合は、次のようなアプローチを使用する必要があります。

table       columns                  example values
-----       -------                  --------------
users       id, name, password       12, "Johnny", "afad13cf1941"
forms       id, user                 42, 12
inputs      id, form, type, options  6, 42, "checkbox", "Want newsletter?"

チェックボックスにのみ属するチェック状態など、入力フィールドごとに異なるオプションがある場合は、次のことを試してください。ただし、この場合、提供する入力タイプごとにテーブルを作成する必要があります。この例ではcheckboxes、、textfieldsおよびimagesです。

table       columns                  example values
-----       -------                  --------------
users       id, name, password       12, "Johnny", "afad13cf1941"
forms       id, user                 42, 12
inputs      form, type, input        42, "checkbox", 8

checkboxes  id, text, checked        8, "Want newsletter?", false
textfields  id, text                 9, "Welcome to that page"
images      id, size, caption        10, 720, "The Mona Lisa"

このtype列は、列のIDの下にある入力フィールドのオプションがどのテーブルにあるかを示していinputます。

どちらの例でも、呼び出されるすべての列idが主キーであることに注意してください。最後の表では、typeとの組み合わせがinput主キーになります。

于 2012-12-07T13:29:16.040 に答える
1

nosqlデータベースがあなたのやりたいことにぴったり合っているかもしれません。-たとえば、couchdbを検索します。

mysqlを使用する必要があり、単一の値を検索できるようにする必要がある場合は、Tanzeelのように実行してsharethisを実行してください。ユーザー/および/またはフォームIDを指定してパラメーターのセット全体をフェッチする場合は、シリアル化されたデータをvarcharまたはテキストフィールドとして格納するのが最適です。シリアル化することを選択した場合は、jsonが請求に適合するかどうかを確認してください。次に、データを処理するためのツールがたくさんあります。

于 2012-12-07T13:34:21.833 に答える