问题来了:
用户将在必需的字段中输入他的信息。然后用户将在复选框中选择一个选择(用户可以选择多个),这些选择将保存在数据库中(复选框的值)。
例如: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;