使用复选框插入信息

Posted

技术标签:

【中文标题】使用复选框插入信息【英文标题】:Inserting information with checkboxes 【发布时间】:2012-12-09 18:29:30 【问题描述】:

问题来了:

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

例如:

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

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

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

我该如何解决这个问题?

【问题讨论】:

这是一个非常好的数据库规范化指南:en.wikipedia.org/wiki/Database_normalization(更新:看起来英文页面不如德语页面好......但它会给你一个方向) 【参考方案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;

【讨论】:

当我删除大卫的全部信息时,你能告诉我需要的SQL语句吗?而且 Personid 没有增加是吗? Person 与 Sports 有 n:m 关系,因此我将创建三个表:Person、Sports 和转换后的表(例如 PersonSports)。 没错@FabioPoloni。假设要存储更多关于运动的数据,那么我列出的名为 Sports 的表应该是 PersonSport,它将包含 Sport 和 Person 的主键。

以上是关于使用复选框插入信息的主要内容,如果未能解决你的问题,请参考以下文章

复选框使用 Javascript 将文本插入文本区域

如何使用 python-docx 将复选框表单插入 .docx 文件?

使用选择表单将复选框值插入 mysql 上特定列的 PHP 代码

使用php pdo在sqlite数据库中插入多个复选框的值

使用 php 将多个复选框值和输入插入单个 sql 数据库

OpenOffice BASIC 如何在工作表中插入复选框