当前位置: 首页 > news >正文

wordpress模版post.php重庆关键词优化软件

wordpress模版post.php,重庆关键词优化软件,同心县建设局网站,桂林两江四湖简介目录 1.概述 2.一对多 3.一对一 4.多对多 5.多表查询 5.1内连接 5.2外连接 5.3子查询 1.概述 项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个…

目录

1.概述

2.一对多

3.一对一

4.多对多

5.多表查询

5.1内连接

5.2外连接

5.3子查询


1.概述

项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种:一对多、多对多、一对一。

数据库的多表设计是关系型数据库设计中的一种常见方法,它通过将数据分散存储在多个表中来实现数据的组织和管理。多表设计的主要目的是实现数据的规范化,以减少数据冗余,提高数据的一致性和完整性。设计时需要仔细规划和考虑,以确保数据库既灵活又高效。设计过程中可能需要多次迭代,以适应不断变化的业务需求。

数据库中的多表查询是常见的操作,它允许从多个表中检索数据,并将这些数据以某种方式组合起来。在编写多表查询时,重要的是要理解每个表的结构,以及表之间的关系。通常通过外键来实现。使用合适的连接类型可以有效地检索和组合数据。

2.一对多

例如部门和员工,一个部门有多个员工,而每一个员工对应一个部门。在设计表时,多的一方(员工表)叫子表,一的一方(部门表)叫父表。实现方式为:在多的一方(员工表)添加一个字段(归属部门),关联一的一方(部门表)的主键即可。

外键:

当把id为1的学工部删除后,员工表中依然有员工归属于学工部,此时数据就出现不完整和不一致的问题了。因此我们需要外键约束来解决多表之间的一致性和完整性问题。

通常使用图形化界面去添加外键,外键添加后,将无法删除和员工表有关的部门数据。

通过foreign key关键字定义的外键称为物理外键,在大型项目中禁止使用,它有以下缺点:

  1. 性能问题:每次插入或更新涉及外键的表时,数据库都需要检查外键约束,这会增加额外的查询和锁操作,尤其是在高并发场景下会导致性能瓶颈

  2. 并发问题:使用外键时,数据库需要在修改数据时获取额外的锁,导致在高并发大流量事务场景中增加死锁的风险

  3. 扩展性问题:物理外键会限制数据库的扩展性。在进行表结构重构、迁移或分表分库操作时,物理外键会增加复杂性和困难,因此仅用于单节点数据库,不适用集群和分布式

为了避免以上问题,我们选择逻辑外键(在业务逻辑中,解决外键关联),它指的是在应用程序层面上实现的外键关系,而不是在数据库层面上通过数据库的外键约束(物理外键)来实现。逻辑外键通过应用程序代码来维护数据的一致性和完整性,而不是依赖数据库的内置约束机制。

3.一对一

例如用户和身份证就是一对一的关系。这种关系通常用来做单表拆分,将一张大表拆分成两个小表,以提升操作效率。

一对一可以看成特殊的一对多,它也可以通过外键来实现,只需要在任意一方添加外键去关联另一方的主键,同时加上unique约束保证值唯一即可。

4.多对多

例如学生和课程,一个学生可以选修多个课程,每个课程也有多个学生选修。可以通过建立第三张中间表来实现,第三张表中有两个外键,分别关联两方主键。

5.多表查询

在进行多表查询时,会将每个表的每条记录都和另外的表进行组合。比如a表有5条数据,b表有6条数据,那么多表查询时会查询出30条数据。这种现象称为笛卡尔积。

笛卡尔积:a集合和b集合的所有组合情况。如果a集合有X个元素,b集合有Y个元素,那么它们的笛卡尔积将有X×Y个元素。在实际应用中,笛卡尔积通常不是我们想要的结果,因为它会产生大量的组合,其中许多是无效或不相关的,因此我们要消除多余的笛卡尔积。

多表查询中根据查询的形式分为连接查询子查询,连接查询又分为内连接外连接,外连接又分为左外连接和右外连接。

内连接查询AB交集。左外连接查询A,右外连接查询B。子查询就是嵌套查询。

5.1内连接

隐式显式没区别,仅是表达方式不同

5.2外连接

5.3子查询

子查询的分类:

  • 标量子查询:子查询返回的结果为单个值。
  • 列子查询:子查询返回的结果为一列。
  • 行子查询:子查询返回的结果为一行。
  • 表子查询:子查询返回的结果为多行多列

/*(select id from dept where name = '教学部')返回单个值,所以是标量子查询*/
/*查询教学部的员工*/
select * from emp where dept_id =(select id from dept where name = '教学部');/*括号内的子查询返回一列两行,所以是列子查询*/
/*查询教学部和咨询部的员工*/
select * from emp where dept_id in 
(select id from dept where name = '教学部' or name = '咨询部'); /*其余类别子查询类似*/
http://www.zhongyajixie.com/news/16688.html

相关文章:

  • 创同盟做网站好不好杭州推广公司
  • 茶叶电子商务网站开发技术支持黄冈免费网站推广平台汇总
  • 网站做排名网站历史权重查询
  • wordpress+腾讯qq登陆长春网站优化
  • 做百度个人网站成都网站建设方案优化
  • 材料网站建设福州外包seo公司
  • 有没有外国网站可以做兼职翻译的企点官网
  • 株洲市建设网站百度seo快速提升排名
  • 免费的毕业设计网站建设优化seo设置
  • 网站建设文化报价上海比较大的优化公司
  • 网站开发用哪种语言做好qq营销软件
  • 免费下载网站有哪些潍坊住房公积金
  • 教育企业网站源码阿里大数据官网
  • 网站建设要咨询哪些内容常州seo排名收费
  • 个人网站开发技术要求seo81
  • 文创产品网站千峰培训出来好就业吗
  • 自己做的网站如何让百度搜索免费seo推广公司
  • 上海网站开发哪家好营销策划与运营方案
  • 寺庙网站模板在线网站seo诊断
  • 凯里网站建设成人电脑速成培训班
  • 网站的页面国外搜索引擎
  • 旅游网站页面设计宣传方式有哪些
  • 长沙市做网站的免费下载百度软件
  • 彭水网站建设推广济南seo优化公司助力排名
  • 完整网站开发步骤营销策划的重要性
  • 权威的网站建设排行榜百度seo规则最新
  • 做网站的空间要多大的做百度推广一个月多少钱
  • 济南优化网站价格百度起诉seo公司
  • 企业网站建设方案.doc百度优化排名软件
  • 网站设计方案和技巧合肥网络优化公司有几家