2010-11-07 4 views
0

Un schéma de base de données avec une relation Employé dont les attributs sont indiqués ci-dessous, avec les types spécifiés pour les attributs à valeurs multiples.Attributs à plusieurs valeurs en m²

Employee = (ename, ChildrenSet multiset(Children), SkillSet multiset(Skills)) 
Children = (name, birthday) 
Skills = (type, ExmSet setoff(Exams)) 
Exams = (year, city) 
  1. définir le schéma ci-dessus, avec des types appropriés pour chaque attribut.
  2. Trouvez le nom de tous les employés qui ont un enfant né le ou après le 1er Janvier, 2000
  3. Trouver les employés qui ont pris un examen pour le type de compétence « taper » dans la ville « Dayton »
  4. Voir tous les types de compétences dans la relation Employé.

pouvez nous m'aider.

+0

Que signifie 'multiset' dans ce contexte? –

+0

@Daniel: ["la balise de devoirs, comme les autres balises" meta ", est maintenant déconseillée."] (Http://meta.stackexchange.com/q/10812) –

Répondre

0

Définissez le schéma ci-dessus, avec les types appropriés pour chaque attribut.

Employees 
{ 
    Employee_id, int, PK 
    Name, nvarchar(50)   
} 
Childs 
{ 
    Child_id, int, PK 
    Employee_id, int, FK 
    Name, nvarchar(50) 
    Birthday, date 
} 
Skills 
{ 
    Skill_id, int, PK 
    Employee_id, int, FK 
    Type, nvarchar(50) 
} 
Exams 
{ 
    Exam_id, int, PK 
    Skill_id, int, FK 
    Year, int 
    City, nvarchar(50) 
} 

Trouvez le nom de tous les employés qui ont un enfant né le ou après le 1er Janvier, 2000

MyDBEntities db = new MyDBEntities(); 

var result = from e in db.Employees 
      join c in db.Childs 
      on e.Employee_id equals c.Employee_id 
      where e.Birthday >= new DateTime(2000, 1, 1) 
      select e; 

Trouver les employés qui ont pris un examen pour le type de compétences « typage » dans la ville "Dayton"

var result = from e in db.Employees 
      join s in db.Skills 
      on e.Employee_id equals s.Employee_id 
      join x in db.Exams 
      on s.Skill_id equals x.Skill_id 
      where s.Type.Equals("typing") && x.City.Equals("Dayton") 
      select e; 

Liste tous les types de compétences dans la relation employé

var result = from e in db.Employees 
      join s in db.Skills 
      on e.Employee_id equals s.Employee_id 
      select new EmployeeSkill() 
      { 
       EmployeeName = e.Name, 
       SkillType = s.Type 
      }; 

ligne de fond ... Linq2Sql règles :)

maintenant ... vous avez juste besoin de convertir LINQ to SQL et que vous avez fait vos devoirs ;)

(vous ne l'avez pas prévu pour obtenir tout fait ici, à droite)

Questions connexes