使用复选框插入信息
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 的主键。以上是关于使用复选框插入信息的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 python-docx 将复选框表单插入 .docx 文件?