1

这是问题所在:

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

例如:

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

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

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

我该如何解决这个问题?

4

1 回答 1

1

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

 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;
于 2012-12-22T11:59:41.430 回答