SQL Server关系数据库中的父子概念

时间:2015-10-21 07:23:32

标签: sql database sql-server-2008 relational-database

我在SQL Server中有一个Teacher和一个Student表。我想使用继承概念创建一个名为Person的表,并将StudentTeacher的公共属性放在那里。

实际上我该怎么做?

我想知道的是:

  • Person记录将如何显示在Student表中?
  • 如果我从Student更新名称,将如何在Person表等中更新

请帮助我,我不知道要尝试什么,我非常需要它...

2 个答案:

答案 0 :(得分:1)

“老师”和“学生”将是继承自“人”的表格。

person存储教师和学生共同的所有细节(例如,姓名,地址,联系信息等)

teacher存储教师的特定信息,以及指向person表的外键以标识其个人信息。类似地,student存储特定于学生的信息

您的人员表可能看起来像

+-----------+---------+----------+------------+
| person_id |  fname  |  lname   |    dob     |
+-----------+---------+----------+------------+
|         1 | tracey  | wright   | 10/10/1990 |
|         2 | max     | smith    | 11/11/1998 |
|         3 | chris   | brown    | 12/06/1978 |
+-----------+---------+----------+------------+

假设tracey和max是学生,max是教师。

您的teacher表格看起来像

+------------+-----------+------------+
| teacher_id | person_id | speciality |
+------------+-----------+------------+
|          1 |         3 | maths      |
+------------+-----------+------------+

teacher_id是表格标识符,person_id是chris表格中的一个。+------------+-----------+------------+--+ | student_id | person_id | detentions | | +------------+-----------+------------+--+ | 1 | 1 | 4 | | | 2 | 2 | 5 | | +------------+-----------+------------+--+ 。这现在将克里斯确定为教师

同样,您的学生表可能看起来像

teacher

现在识别学生的tracey和max(例如,关于学生的具体信息可能是拘留的数量)

在每种情况下,使用studentperson_idjoin用作外键。外键是另一个表中的主键,因此允许其他表互相引用。

要访问每条记录的信息,您需要使用 if(data==1){ if($scope.form.language=='English'){ toastr.success('Form has been submitted successfully', 'Success'); } else{ toastr.success('הטופס נקלט בהצלחה', 'הצלחה'); } form={}; console.log('Empty is'+empty); } 语句。根据您使用的DBMS,这在语法上有所不同(请参阅http://www.w3schools.com/sql/sql_join.asp以获得正确的理解)

答案 1 :(得分:0)