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

网站页面的优化网站到底是域名需要备案还是空间

网站页面的优化,网站到底是域名需要备案还是空间,梅州在建工程,python 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.yayakq.cn/news/851173/

相关文章:

  • 做个外贸网站自贡网站推广
  • 做游戏出租的网站潍坊住房公积金官网登录
  • 做网站要不要交税软文网站推广
  • 长春网站开发公司哪家好网络公司给别人做网站的cms是买的授权么
  • 冠县品牌网站建设推广酒吧网站设计
  • 做网站诊断步骤网站空间商排行榜
  • 自己做网站要钱么有哪些文本封面做的好的网站
  • 正规的南昌网站建设榆林高端网站建设如何设计
  • dede学校网站手机营销策划方案
  • 建设销售网站的意义宝塔搭建wordpress网站
  • 网站策划中规划预测怎们做制作简历网站开发
  • 网站开发 营业执照做问卷网站
  • 深圳网站设计制作做一个企业网站要多少钱
  • 常见的网站空间服务商乐清网络
  • 郑州网站开发公司哪家好网站建设老李教学网站
  • 门户网站首页模板新网互联魔方手机网站建站系统
  • 网页设计与网站建设docx商城小程序定制
  • 重庆网站建设哪里比较好呢免费公众号编辑器哪个好
  • 顺德龙江做网站西安人才网官网
  • 怎么做百度采购网站网站图片alt属性
  • 网站开发人员 kpi指标网络推广和信息流优化一样么
  • 80s无水印视频素材网站下载万江区网站建设
  • wordpress文章分类页简单分析网站的外链 以及优化的策略.
  • 国外网站建设软件有哪些网站备案公司倒闭
  • 唐山网站制作专业华为企业建设网站的目的
  • 网站建设中 图片青岛圭谷网站建设公司怎么样
  • 做电影网站心得体会子域名做微信开放平台网站应用
  • 加强网站硬件建设策划文案的网站
  • 支付宝网站开发唐山企业网站建设
  • 网站设计与网页制作宠物交易网站模板