表名:实习,现在我想为公司名称 XYZ 存储“skill_required”,例如技能:php、java 等 mow 问题是在公司注册时我必须指定文本或复选框..etc 以及如何存储它在数据库中?带有 id ?like 1 for php 2 for java
第二。当学生搜索实习然后在感兴趣的领域他指定 php 其他学生指定 java 时,必须为学生搜索显示公司 xyz,因为公司同时提供 php 和 java 实习,那么如何检索该表单数据库,?技能名称和技能ID应该有单独的表格吗?
表名:实习,现在我想为公司名称 XYZ 存储“skill_required”,例如技能:php、java 等 mow 问题是在公司注册时我必须指定文本或复选框..etc 以及如何存储它在数据库中?带有 id ?like 1 for php 2 for java
第二。当学生搜索实习然后在感兴趣的领域他指定 php 其他学生指定 java 时,必须为学生搜索显示公司 xyz,因为公司同时提供 php 和 java 实习,那么如何检索该表单数据库,?技能名称和技能ID应该有单独的表格吗?
您应该有一个单独的表格,将每个公司与他们需要的所有技能联系起来,例如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'
您不应该将多个值放在单个列中,因为这样做会破坏第一范式。查看该链接,了解您可能遇到的问题以及如何解决这些问题的示例。