gpt4 book ai didi

mysql - 多选复选框sql设计

转载 作者:行者123 更新时间:2023-11-29 13:18:14 24 4
gpt4 key购买 nike

我想知道存储多个复选框值以便于搜索的最佳方式是什么。

如果对于技能表(足球、游泳、跳舞......)我分配唯一的 ID,或者我应该使用唯一的字符串 - 要存储在数据库中的确切单词,有什么优势吗?

如果答案是“数字”并且可用选项总数超过“10”,我是否应该开始从 10 开始增加 id,这样我就可以避免为 %2% 找到 12、2、22,以防万一存储像 14 那样,23,34/用户表中的足球、游泳、跳舞。

有更好的方法吗?

最佳答案

使用 3 个表:

  1. Person 表。其中包含单值属性,例如姓名、生日等。
  2. 技能表。其中包含每个技能的名称。
  3. PersonSkills 表。这是一个关系表,包含前两个表之间的多对多关系。它有两列:Person_idSkill_id,它们是前两个表的外键。

要获得所有技能,您需要加入表格:

SELECT person_name, GROUP_CONCAT(skill_name) skills
FROM Person p
LEFT JOIN PersonSkills ps ON p.person_id = ps.person_id
JOIN Skills s ON s.skill_id = ps.skill_id

要让所有的人都具有特定技能:

SELECT person_name
FROM Person p
JOIN PersonSkills ps ON p.person_id = ps.person_id
JOIN Skills s ON s.skill_id = ps.skill_id
WHERE skill_name = "swimming"

关于mysql - 多选复选框sql设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21197372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com