【问题标题】:store multiple values in single column in mysql [closed]在mysql的单列中存储多个值[关闭]
【发布时间】:2013-08-15 17:01:10
【问题描述】:

表名:实习,现在我想为公司名称 XYZ 存储“skill_required”,例如技能:php、java 等 mow 问题是在公司注册时我必须指定文本或复选框..etc 和如何将其存储在数据库中?使用 id ?like 1 for php 2 for java

第二。当学生搜索实习然后在感兴趣的领域他指定 php 其他学生指定 java 时,必须为学生搜索显示公司 xyz,因为公司同时提供 php 和 java 实习,那么如何检索该表单数据库,?技能名称和技能ID应该有单独的表格吗?

【问题讨论】:

  • 您不能在单个列中存储多个值。就这么简单

标签: php mysql database multiple-value


【解决方案1】:

您应该有一个单独的表格,将每个公司与其所需的所有技能联系起来,例如Company 表格:

CompanyId  CompanyName
_________  ___________
1          BobCo
2          PeteCo
...

...以及Internship 表中所需的技能:

CompanyID  SkillID
_________  _______
1          1
1          2
2          1
...

...然后您可以有一个单独的 Skill 表将技能 ID 映射到技能名称:

SkillID  SkillName
_______  _________
1        PHP
2        Java
3        MySQL
...

例如,如果Java是技能2,你可以这样做:

SELECT CompanyID FROM Internship WHERE SkillID=2;

该查询返回需要 Java 的公司。或者,更复杂的查询:

SELECT CompanyName 
FROM Company JOIN Internship USING(CompanyID)
  JOIN Skill USING(SkillID)
WHERE SkillName = 'Java'

您应该不将多个值放在一个列中,因为这样做会破坏first normal form。查看该链接,了解您可能遇到的问题以及如何解决这些问题的示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 2015-07-20
    相关资源
    最近更新 更多