2010-11-07 110 views
0

具有關係Employee的數據庫模式,其屬性如下所示,其中具有爲多值屬性指定的類型。sql中的多值屬性

Employee = (ename, ChildrenSet multiset(Children), SkillSet multiset(Skills)) 
Children = (name, birthday) 
Skills = (type, ExmSet setoff(Exams)) 
Exams = (year, city) 
  1. 定義以上模式,以適當類型的每個屬性。
  2. 找到誰擁有一個孩子出生在1月1日或以後所有員工的名字,2000
  3. 找到誰在城市 「頓」
  4. 名單參加升學考試的技能型「輸入」所有的員工Employee關係中的技能類型。

請你能幫助我。

+0

什麼是「多集」是指在這方面? – 2010-11-07 09:22:04

+0

@Daniel:[「家庭作業標籤與其他所謂的'meta'標籤一樣,現在不鼓勵。」](http://meta.stackexchange.com/q/10812) – 2010-11-07 23:37:37

回答

0

定義上述模式,併爲每個屬性指定適當的類型。

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) 
} 

找到誰擁有一個孩子出生在1月1日或以後所有員工的名字,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; 

查找誰參加升學考試的技能型「打字」的員工在城市的 「頓」

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; 

中列出的關係,員工的所有技能類型

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 
      }; 

底線...... LINQ2SQL規則:)

現在......你只需要轉換的LINQ to SQL和你有你的功課做;)

(你不希望讓所有在這裏完成,右)