1

以前にこの質問をしましたが、答えが見つかりませんでした..まず、私の英語で申し訳ありません..

フォームに 80 個のチェックボックスが含まれています。これらのチェックボックスは、 car の
例である car のオプションです。MP3 プレーヤー | ABS | エアバッグ | エアコン |

ユーザーはチェックボックスから自分の車のオプションを選択して投稿する必要があります。それらをデータベースに保存するにはどうすればよいですか? ところで、ユーザーは後でそれらを更新できるはずです..

implode() を使用して、次のように保存する必要があります

option1 , option2 , option34 , option45 , option66 ,  in one column

またはそのように

Car_ID | Options | 
155      option2
155      option34
155      option45
155      option66 

(どのように更新する必要がありますか?)

または、データベースなどで 80 列を開きます。

Car_ID | Option1 | Option2 | Option3 | Option4 | Option5
155         true     true      false     false     false
4

2 に答える 2

3

オプションテーブル、ユーザーテーブル、およびそれらを関連付けるuser_optionsテーブルが必要です。これにより、必要に応じてオプションを簡単に変更したり、オプションを追加または削除したりできます。

Users
user_id,username

Options
option_id,option_name

User Options
option_id,user_id

各ユーザーが複数の車を所有できる場合は、次のようになります。

Users
user_id,username

Options
option_id,option_name

Cars
car_id,car_name

User_Car_Options
user_id,car_id,option_id
于 2013-01-18T00:37:53.570 に答える
0

最善の方法はそのようなものです

+---------+----------+----------+----------+
| Car_ID  | Option1  | Option2  | Option3  |
+---------+----------+----------+----------+
| 1       | TRUE     | FALSE    | NULL     |
| 2       | TRUE     | NULL     | FALSE    |
| 3       | NULL     | TRUE     | FALSE    |
+---------+----------+----------+----------+

(これにより元のテーブルが乱雑になると思われる場合は、これらの列を別のテーブルに配置して、それらの間に1:Nの関係を設定することもできます)

編集 :

ただし、チェックボックスが動的であり、リストからボックスを追加/削除できるようにする場合は、テーブルの各行に各チェックボックスの値を設定できるN:M関係を設定することをお勧めします。これには、ceckboxを格納するための個別のテーブルと、テーブルAの各行が各チェックボックスに対して持つ値を格納するための中間テーブルが必要になります。好き:

/* Your table */
+-----+
| AID | 
+-----+ 
| 1   |
| 2   |
| 3   | 
+-----+

/* The table for the boxes */
+-------+-------+
| BoxID | Label |
+-------+-------+
| 1     | Box1  |
| 2     | Box2  |
| 3     | Box3  |
+-------+-------+

/* The intermediary table 
 * linking them together */
+-----+-------+-------+
| AID | BoxID | Value |
+-----+-------+-------+
| 1   | 1     | TRUE  |
| 1   | 2     | FALSE |
| 2   | 1     | TRUE  |
| 2   | 3     | FALSE |
| 3   | 2     | TRUE  |
| 3   | 3     | FALSE |
+-----+-------+-------+
于 2013-01-18T00:39:02.513 に答える