中间表 临时表

本文介绍了在查询所有级别医院的需求中,如何利用中间表(t_OrgTypeRelation)进行三表联查。中间表在多对多关系中起到桥梁作用,避免冗余数据并简化‘增删改查’操作。讨论了不使用中间表可能带来的问题,强调了中间表的便利性和低耦合优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    今天碰到个需求,需要查询所有级别的医院,看了下库表,分别是  机构类型类(t_OrgType) 机构类(t_Organ) 多对多的关系,  以及中间表 机构类型关系类(t_OrgTypeRelation) ,在此对中间表的概念做一个总结,下面是表结构

机构类型类(t_OrgType)

属性名称

数据元名称

数据元标识符

约束

类型

表示格式

允许值

Org_Type_ID

机构类型ID

 

 

S1

AN32

 

Org_Type_Code

机构类型代码

 

 

S1

AN..10

 

Org_Type_Name

机构类型名称

 

 

S1

AN..50

 

Card_Org_Flag

制卡机构标志

 

 

S2

AN..2

0:否 1:是

Create_Time

数据创建时间

 

 

DT

DT15

 

Create_User_DR

数据创建用户ID

 

 

S1

AN32

 

Update_Time

数据最后一次更新时间

 

 

DT

DT15

 

Update_User_DR

数据最后一次更新用户ID

 

 

S1

AN32

 

 

 

 

 

 

 

 

 


机构类(t_Organ)

属性名称

数据元名称

数据元标识符

约束

类型

表示格式

允许值

Org_ID

机构ID

 

 

S1

AN32

 

Org_Code

机构代码

 

 

S1

AN..10

 

Org_Name

机构名称

 

 

S1

AN..50

 

Org_Short

机构简称

 

 

S1

AN..50

 

Bank_Short

金融机构英文简写

 

 

S1

AN..20

Eg:ICBC

Bank_Status

金融机构状态

 

 

S2

N1

0:未发卡、1:发卡

Manag_Leval

管理机构级别

 

 

S2

N1

见6.1

Med_Leval

医疗卫生机构等级

 

 

S3

N2

见6.26

Med_Tel

医疗卫生机构联系电话

 

 

S1

AN..20

 

Med_Cate_Code

医疗卫生机构类别代码

 

 

S1

AN..20

见6.27

MED_NATURE_CODE

医疗卫生机构性质代码

 

 

S3

N2

见6.28

Org_Introduct

机构简介

 

 

S1

AN..3000

 

Province_Code

所在省份编码

 

 

S3

N6

见6.38

City_Code

所在城市编码

 

 

S3

N6

见6.38

District_Code

所在区/县编码

 

 

S3

N6

见6.38

Law_Person_Name

机构负责人

 

 

S1

A..30

 

Law_Person_Tel

机构负责人电话

 

 

S1

AN..20

 

Contact_Name

机构联系人

 

 

S1

A..30

 

Contact_Tel

机构联系人电话

 

 

S1

AN..20

 

Org_Addr

机构联系地址

 

 

S1

AN..100

 

Super_Org_Code

上级机构编码

 

 

S1

AN..10

 

Super_Org_Name

上级机构名称

 

 

S1

AN..50

 

Fax_No

传真号

 

 

S1

AN..20

 

Email

邮箱

 

 

S1

AN..50

 

Web_Url

网址

 

 

S1

AN..200

 

Postal_Code

邮政编码

 

 

N

N6

 

Available_Flag

是否有效标志

 

 

S2

AN..2

0:无效

1:有效

Start_Date

有效开始时间

 

 

D

D8

 

End_Date

有效结束时间

 

 

D

D8

 

Issuer_Org_Code

发卡机构代码

 

 

N

N22

 

Notes

备注

 

 

S1

AN..500

 

Create_Time

数据创建时间

 

 

DT

DT15

 

Create_User_DR

数据创建用户ID

 

 

S1

AN32

 

Update_Time

数据最后一次更新时间

 

 

DT

DT15

 

Update_User_DR

数据最后一次更新用户ID

 

 

S1

AN32

 

机构类型关系类(t_OrgTypeRelation)

属性名称

数据元名称

数据元标识符

约束

类型

表示格式

允许值

Org_Rel_ID

机构类型关系ID

 

 

S1

AN32

 

Org_Type_Code

机构类型代码

 

 

S1

AN..10

 

Org_Code

机构代码

 

 

S1

AN..10

 

Available_Flag

是否有效标志

 

 

S2

AN..2

{0,1}

Start_Date

有效开始时间

 

 

D

D8

 

End_Date

有效结束时间

 

 

D

D8

 

Create_Time

数据创建时间

 

 

DT

DT15

 

Create_User_DR

数据创建用户ID

 

 

S1

AN32

 

Update_Time

数据最后一次更新时间

 

 

DT

DT15

 

Update_User_DR

数据最后一次更新用户ID

 

 

S1

AN32

 



解决方案为三表联查,以中间表 Org_Type_Code为形参 查出t_Organ的一些必要属性

总结下中间表的作用 

中间表是一个逻辑上的叫法,实质上它就是一个普通的库表( 为区分“临时表”),分析了经常的业务操作,发现大量的“赠删改查” 实际是以中间表为桥梁,

那么可不可以不用中间表,单纯的在两个表之间建立多对多的关系(通过主外键关联),事实可以,但是库表会存在大量的冗余数据,每个表会有nXn条记录,

明显不采用中间表会有2nXn(两个表加起来)条记录,有中间表的话为2n+nXn(三表加起来)条记录,更不论每个表的字段数会变成两个单表字段数相加

之和,并且没有中间表的话,两表直接关联,对于“增删改查”非常繁琐,特别是“删改”操作,多么痛的领悟!有中间表的话还是非常便利的,低耦合在哪里

都受欢迎。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值