1.主扩展模式:

  一般应用于提取不同类型的对象的共同特征。比如学校当中,对于上课而言分为
老师和学生,但对于食堂大妈或者门卫大爷而言,就看你是不是校内人员。这是一种包含
关系。即校内人员包括 学生、老师、其他工作人员。如果做一个签到系统,就设定校内
人员为user表,老师、学生之类的单独成表,但是都维护同样的userid同时作为二者的主

键。使之称为1对1的关系。这种模式就是主扩展模式。

  扩展表的主键既是扩展表的主键也是主表的外键

2.主从模式
  主从模式的应用场景最多。是典型的一对多的关系。比如贴吧的实现,整个
吧就是一个主表。而贴吧有许多的从表就是不同楼主发的帖子,而每个帖子有用很多从表
那就是每个楼所对应的信息。

3.名值关系
  主要处理系统设计阶段还不能完全确定的属性的对象。这些对象的属性在系统运
行时会有很大的变更,或者是多个对象之间的属性存在很大的差异。
  比如说一个学生的表,记录了一些学生必须有的属性:年龄身高体重姓名什么的。但是突然有
一天有一个人穿越了,他就需要一个剑术值的数据。通常需要额外两个表来存储这种不确定是否
会用会有的属性。

  首先需要一个属性模版表,就是不管这个属性属于谁,属于何物,何时,
我只是证明有这么一条额外属性而存在。那么上述的例子当中,属性模板表当中就
需要添加一条属性:(属性代码一般给属性分类用)

  ID 1 属性代码 1001 属性名称 剑术值

  但是具体剑术值是多少,这个表不去讨论。存储数据的表称为额外属性表,这个
表存储的字段分别标识
  1.这条数据属于哪个人、物(角色id)
  2.这条数据是什么属性 (属性模板ID)
  3.属性的具体值是多少 (data)

4.多对多关系
      多对多模式,也是比较常见的一种数据库设计模式,它所描述的两个对象不分主
次、地位对等、互为一对多的关系。对于A表来说,一条记录对应着B表的多条记录,反过
来对于B表来说,一条记录也对应着A表的多条记录,这种情况就是“多对多模式”。
这个主要可以细分成两种情况。取决于关联表有没有业务需求。

转载于:https://www.cnblogs.com/AkazaAkari/p/5943796.html

常见的四种数据库设计模式相关推荐

  1. 数据库常见的四种索引

    数据库常见的四种索引 1.普通索引:主要以B+树和哈希索引为主,任务是加快对数据的访问速度,常用于查询和排序的条件,值可以为空并没有唯一性的限制 2.唯一性索引:与普通索引类似,不同的是唯一性索引,索 ...

  2. 对Java中常见的四种I/O模型理解

    对Java中常见的四种I/O模型理解 1.1 知识科普 1.1.1 同步阻塞I/O(Blocking I/O) 1.1.1.1 阻塞与非阻塞 1.1.1.2 同步与异步 1.1.1.3 同步阻塞I/O ...

  3. post 表单中常见的四种表单请求方式

    //post 表单中常见的四种表单请求方式 typedef enum {     postformURLEncoded,                 /*对应Content-Type: appli ...

  4. 常见的6种JavaScript设计模式

    常见的6种JavaScript设计模式 构造函数模式 /*** 构造一个动物的函数 */ function Animal(name, color){this.name = name;this.colo ...

  5. 针对常见的四种短路故障(单相接地短路,两相相间短路,两相接地短路,三相短路),可采取三种方法进行计算

    短路电流计算/ Matlab编程计算 针对常见的四种短路故障(单相接地短路,两相相间短路,两相接地短路,三相短路),可采取三种方法进行计算: 1.实用短路电流计算 2.对称分量法计算 3.节点导纳法计 ...

  6. 简介常见的四种类型的J2EE架构

    简介常见的四种类型的J2EE架构 作者:云飞出处:IT专家网论坛2008-10-30 00:00 J2EE应用一般分成三个主要层(tier),这种分层比客户/服务器方式具有更多的优点: 1.关于J2E ...

  7. MongoDB、ES、Redis、HBase四种数据库的简单区别

    MongoDB和Elasticsearch的对比 适用场景 两者其实在很多使用场景上有重合之处, 是可以互相替代, 比如日志收集 但是某些方面两者又各有特色,比如: 如果打算使用一个文档型的业务数据库 ...

  8. 大数据时代MongoDB、ES、Redis、HBase这四种数据库你应该懂

    数据库对互联网开发的重要性就不必多说了.作为大数据和AI时代的互联网er,如果你还是只懂MySQL,那你可就火星大发了.下面给大家总结下每个互联网er都必须懂的几种数据库产品. MongoDB Mon ...

  9. Java大数据:大数据开发必须掌握的四种数据库

    大数据的典型特征,包括数据量大.数据类型多.价值密度低等,而具备这样特征的数据,在进入到存储阶段时,就需要根据数据类型及场景,来匹配适当的数据存储解决方案.今天我们来讲讲Java大数据开发当中,必须掌 ...

最新文章

  1. Docker入门六部曲——容器
  2. 双调TSP问题通俗讲解
  3. 使用Command模式实现撤销机制 (Code Project 精选翻译)
  4. Django框架深入了解_04(DRF之url控制、解析器、响应器、版本控制、分页)(一)
  5. 【渝粤教育】 广东开放大学 21秋期末考试物业环境与秩序管理10122k2
  6. 前端学习(1598):ref转发
  7. 最新!兰州大学发布对上海市的新冠肺炎疫情预测!
  8. 7. 从数据库获取数据- 从零开始学Laravel
  9. SpringBoot 之多个过滤器(Filter) ,监听器(Listener),切面(AOP),拦截器(Interceptor)的指定排序问题总结篇
  10. html 加号按钮变减号,带有javascript附加输入的加号/减号按钮
  11. 1.定义一个基类 Base,有两个公有成员函数fn1( ),fn2 ( )。 私有派生出Derived类,如何通过Derived 类的对象调用基类的函数fnl() ?
  12. 开源软件之screen的第一次使用
  13. 3.28layui添加商品功能和显示所有商品功能
  14. SSD-caffe踩keng
  15. url资源(html相关)
  16. 代码实现判断主机字节序(大端 or小端 )-- 面试题
  17. restapi是什么意思_简单理解什么是REST和RESTful
  18. 解决二义性问题解决 java_C++中常见的两种二义性问题及其解决方式
  19. 如何在日志中查找mysql日志临时密码_通过查询日志定位持有锁的SQL语句
  20. 艺赛旗RPA验证码处理系列(三):破解极验滑动验证码

热门文章

  1. 差分曼彻斯特编码c语言,谁来给我解释一下这个曼彻斯特编码程序(vhdl的)
  2. 详解 xml 文件头部的 xmlns:xsi
  3. Spring Boot自定义starters
  4. Kali Linux利用MSF入侵安卓手机(小白版超详细)
  5. springboot游戏虚拟道具交易平台
  6. 留学选校+个人定位工具— “指南者留学”APP正式上线
  7. 搜索引擎蜘蛛喜欢什么样的网站?
  8. 机器学习常用数据清洗方法
  9. 虹口区科技小巨人企业申请条件及奖励政策解读
  10. cephfs_您应该了解的CephFS