数据库设计范式

第一范式:数据库中的每一列都是不可分割的属性,确保每一列的原子性

例如有地址这个字段,一个地址包括省市区,但是有时候需要查询所在的省,那么这个时候就需要查询出地址这个字段,然后再提取出省的信息出来,这样就不符合不可分割的原子,也就不满足数据库的第一范式,如果又这样的场景,省市区等各级地址,就应该有自己单独的字段来分别存储,这样既可以单独使用,也可以混合起来当成一个完整的地址。

第二范式,数据库中的每个字段,都要和主键有关,不能没有关系

例如一个订单的表中,应该只有关于这个订单的信息,一般订单中会包含产品,这个时候,应该产品单独有一张表,然后记录下这个产品的信息,例如价格,大小,厂商等等,而不能将产品的信息也存放到订单表中。第二范式要求数据库中的每张表,只描述一件事情。

第三范式,数据库中的每个字段,都要和主键直接相关,而不是间接相关。

例如一张学生表中,有学生id(主键),所属院校,院校地址这样的信息,院校地址虽然跟学生有关,但是却不是直接关系,而是间接关系,这个时候,就应该将他们分开,分成学生id,院校id一样表,然后院校id,院校地址一张表。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数据库设计范式及其意义和不足 补充:现在大型项目倾向于反范式设计,得益于大容量硬盘的白菜价和计算机的性能提升,表的...
    七枷琴子阅读 7,853评论 0 1
  • 数据库设计三大范式 数据库设计范式 什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都...
    sean_liu_01阅读 1,365评论 0 0
  • 1.第一范式(1NF) 定义:如果关系模式R的所有属性的域都是原子的,那么称关系模式R属于第一范式。 通俗的讲,第...
    李三岁他很皮阅读 4,415评论 0 2
  • 逻辑设计 1. 相关名词 1.1. 候选码,主码 候选码通常有一个或多个,用于唯一确定一个元组(行,对象)。举例:...
    pepsi1000阅读 4,400评论 0 0
  • 什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的...
    程序里的小仙女阅读 1,839评论 0 0