经常看到一些书上的数据表有这样一个特点: 例如CREATE TABLE Person(psnNo INT IDENTITY(1,1) PRIMARY KEY,psnName NVARCHAR(5) NOT NULL,psnSex NCHAR(1) NOT NULL)CREATE TABLE Empolyee(empNo int identity(1,1) primary key,psnNo int not null,empDuty nvarchar(10) notnull)这两个表中都有 psnNo ,我不明白为什么第二个表中还要出现这个 psnNo ,是不是这样两个表可以形成一种关联,当查找或修改第一个表的时候可以同时更新第二个表呢?小弟新手,请回答详细!

解决方案 »

  1.   

    不知道Person和Empolyee的关系是什么样的,这个要看业务需求了。很多表都有id,但是不一定都有关系。但是例如学生表有学生编号,选课表也有学生编号,这种就有外键约束了。
      

  2.   

    你仔细看看吧!
        第一个表Person的psnNo是主键,第二个表Empolyee的psnNo十有八九是外键。你当然也可以把Empolyee的psnNo改成其他的名字,但我建议还是不要改。
        不改的好处:1.容易明白,一般这样出现相同名字的列都是主键和外键的关系。2.在数据库关系图中你把两个表用线条连起来,关系会根据相同的名字自动对应起来,省事!
      

  3.   

      第一个表Person的psnNo是主键,第二个表Empolyee的psnNo十有八九是外键。如果是外键可以级联操作,如果不是外键不会有影响。
      

  4.   

    如果需要在几张表之间形成关联关系,就必须在表里有用于关联的字段,可以是外键,也可以什么都不是。看楼主的例子,psnNo字段就是用来关联两表的。