使用复选框插入信息


Inserting information with checkboxes

问题来了:

用户将在必需的字段中输入他的信息。然后用户将在复选框中选择一个选择(用户可以选择多个),这些选择将保存在数据库中(复选框的值)。

例如:

David选择了2个选项。比如体育运动。大卫选择篮球和排球。在我的数据库中,它看起来像这样:

| id |  firstname  |  lastname  |  sports      |
| 1  | David       |  White     |  Basketball  |
| 2  | David       |  White     | Volleyball   |

我的主要问题是,如果我必须更改或删除信息,只有一行将被更改或删除,这是一个大问题。我不能让它像在爆炸或内爆一样,因为我要显示有多少用户选择了某个运动。

我怎样才能解决这个问题?

看起来您需要规范化您的表。您可以创建一个表来存储个人数据:

 person = (personid, firstname, lastname, other fields related to person)

和一个表来存储选择:

 sport = (sportid, name, other data related to sport)

最后是管理关系的表:

 PersonSport = (personid, sportid)

那么在上面的场景中,您的数据将是:

 Person
 personid    Firstname    Lastname
  1          David        White
  2          Sam          Black

Sport
sportid       name
1             Basketball
2             Football
3             Tiddlywinks

 PersonSport
 Personid   Sportid
   1        1
   1        2
   2        3
   2        1

统计有多少用户选择了一项运动:

  Select count(*) from PersonSport where sportid = 1;