怎么能同时插入记录呢?
先维护table1,添加新的省,然后再向table2添加记录。
外键是用来保持数据的一致性。

解决方案 »

  1.   

    将省独立出来。省长这个属性应该是属于人员这个实体的。
    简单的改一改:省(省ID,省名称,省的其他自然属性)
                 人员(人员ID,人员姓名,.....职务(如:省长),省ID)
      

  2.   

    人员表(id,name,...)身份号,姓名,...
    关联表(fid,id)省份编号,身份号
    省份表(fid,name,...)省份编号,省份名称
    通过触发器实现约束,数据量不大,不要使用外键
      

  3.   

    楼上两位的解决方法确实可以满足我的需求,但还想继续探讨一下:developer2002:如果我只想区分省长和非省长,这样是不是增加了数据量,并且不能保证一个省有一个省长且只有一个省长;beckhambobo:好像也不能保证一个省有一个省长且只有一个省长吧,触发器应该怎样设置?要求一个省有且只有一个省长,一个省有无数的省民,应该怎样改进?
      

  4.   

    好象用二个表较合适:
    表1:(sf_id,sf_name)省份代码,省份名称;
    表2:(sf_id,id,name,class)省份代码,人员代码,人员名称,职位;
    表1中用sf_id作为主键,表2中用sf_id+id作为主键。
    职位中有省长、副省长、相关人员。
      

  5.   

    beckhambobo(beckham)不要有这种担心,他担任北京市长自然是北京人了。
    不过,你这种表还是不要这样子设计的好。
      

  6.   

    这种关系数据库怎样描述:
    表1:name,schoolid。主键name。
    表2:classid,schoolid。主键:classid,schoolid。通过name查找到school,然后可以找到这个学校的各个班级。
    是不是没有办法把两个li两个schoolid关联起来!