2013-08-15 3 views
-4

nom de la table: stage, maintenant je veux stocker "skill_required" pour le nom de l'entreprise XYZ comme compétences sont: php, java etc mow Question est au moment de l'enregistrement de la société, je dois spécifier le texte de ou cochez la case ..etc et comment le stocker dans la base de données? avec id? comme 1 pour php 2 pour javastocker plusieurs valeurs dans une seule colonne dans mysql

2e. quand étudiant recherche de stage puis dans le domaine d'intérêt, il spécifie php autre étudiant spécifier java, alors la société xyz doit être affichée à la fois pour la recherche des étudiants que l'entreprise fournit un stage sur PHP et Java, donc comment récupérer cette base de données de formulaire? il devrait y avoir une table séparée pour les compétences avec le nom de la compétence et l'identifiant de compétence?

+0

Vous ne pouvez pas stocker plusieurs valeurs dans une seule colonne. Aussi simple que cela –

Répondre

3

Vous devriez avoir une table séparée reliant chaque entreprise à toutes les compétences dont ils ont besoin, par exemple la table Company:

CompanyId CompanyName 
_________ ___________ 
1   BobCo 
2   PeteCo 
... 

... et les compétences requises dans votre table Internship:

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

... et vous pourriez avoir un Skill ID de compétence de mappage de table séparé aux noms de compétence:

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

Par exemple, si Java est 2 compétence, vous pouvez faire:

SELECT CompanyID FROM Internship WHERE SkillID=2; 

Cette requête renvoie les entreprises qui ont besoin de Java. Alternativement, une requête plus complexe:

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

Vous devriez pas mettre plusieurs valeurs dans une seule colonne, car cela brise si first normal form. Jetez un oeil à ce lien pour des exemples de problèmes que vous êtes susceptible de rencontrer, et comment les résoudre.

Questions connexes