最近新换了一家公司猛然在发现数据库设计方面和以前公司完全不一样。以前我们的数据库依据主要业务创建主键ID后,别的关联表都会以这个主键为其复合主键。比如学生表、课程表和成绩表,成绩表会以学生表和课程表的主键为复合主键。但是在新的公司基本上成绩表的主键都会是自增主键,然后有两个字段分别是学生表和课程表的主键。我就想问问这种设计是基于什么考量的,因为我发现在这种设计情况下很容易出现重复数据。

解决方案 »

  1.   

    主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。
    为什么这么设计可以问一下公司的工作人员。
    为什么会容易出现重复数据呢?
      

  2.   

    基本上所有的业务表好像都是这样设计的,目前来看是他们的check做的不完善,有的功能没有添加重复记录筛选,这个是系统bug会修复。但是总感觉这种每次插入前检查数据库是否有重复项很不人性,尤其是在做批量插入的时候。