数据库怎么设计多对多的数据表

数据库怎么设计多对多的数据表,第1张

1数据库中的多对多关联关系一般需采用中间表的方式处理,将多对多转化为两个一对多。

2通过表的关系,来帮助我们怎样建表,建几张表。

一对一

一张表的一条记录一定只能与另外一张表的一条记录进行对应,反之亦然。

学生表:姓名,性别,年龄,身高,体重,籍贯,家庭住址,紧急联系人

其中姓名、性别、年龄、身高,体重属于常用数据,但是籍贯、住址和联系人为不常用数据

如果每次查询都是查询所有数据,不常用的数据就会影响效率,实际又不用

常用信息表:ID(P),姓名,性别,年龄,身高,体重

不常用信息表:ID(P),籍贯,家庭住址,紧急联系人

解决方案:将常用的和不常用的信息分享存储,分成两张表

不常用信息表和常用信息表,保证不常用信息表与常用信息表能够对应上:找一个具有唯一性的

字段来共同连接两张表。

一个常用表中的一条记录永远只能在一张不常用表中匹配一条记录,反之亦然。

一对多

一张表中有一条记录可以对应另外一张表中的多条记录;但是反过来,另外一张表的一条记录

只能对应第一张表的一条记录,这种关系就是一对多或多对一

母亲与孩子的关系:母亲,孩子两个实体

母亲表:ID(P),名字,年龄,性别

孩子表:ID(P),名字,年龄,性别

以上关系:一个妈妈可以在孩子表中找到多条记录(也可能是一条),但是一个孩子只能找到一个妈妈

是一种典型的一对多的关系。

但是以上设计:解决了实体的设计表问题,但是没有解决关系问题,孩子找不到母亲,母亲也找不到孩子

解决方案:在某一张表中增加一个字段,能够找到另外一张表中的记录:在孩子表中增加一个字段

指向母亲表,因为孩子表的记录只能匹配到一条母亲表的记录。

母亲表:ID(P),名字,年龄,性别

孩子表:ID(P),名字,年龄,性别,母亲表ID(母亲表主键)

多对多

一对表中(A)的一条记录能够对应另外一张表(B)中的多条记录;同时B表中的一条记录

也能对应A表中的多条记录

老师和学生

老师表 T_ID(P),姓名,性别

学生表 S_ID(P),姓名,性别

以上设计方案:实现了实体的设计,但是没有维护实体的关系

一个老师教过多个学生,一个学生也被多个老师教过

解决方案:增加一张中间关系表

老师与学生的关系表:ID(P),T_ID,S_ID

老师表与中间表形成一对多的关系,而中间表是多表;维护了能够唯一找到一表的关系;

同样的学生表与中间表也是一个一对多的关系;

学生找老师:找出学生ID--->中间表寻找匹配记录(多条)--->老师表匹配(一条)

老师找学生:找出老师ID--->中间表寻找匹配记录(多条)--->学生表匹配(一条)

我当年的笔记,都给你吧。

一、 建立数据库

方法一:使用向导,调出方法⑴可采用“文件”菜单“新建”

⑵或采用“工具”菜单“向导”

方法二:使用数据库设计器

1、 使用向导建立数据库

特点:可以方便快捷地创建数据库,但只适用于一般常用的数据库。

2、 使用数据库设计器建立数据库

特点: 最大特点就是灵活性

*** 作步骤:⑴“文件”菜单“新建”,显示新建对话框

⑵选择“数据库”和单击“新建文件”钮

⑶在创建对话框中输入新数据库的名称和单击“保存”钮

效果:数据库文件已经建立完成。

显示出“数据库设计器”窗口和“数据库设计工具”

打开“数据库设计器”工具方法:“显示”菜单“工具栏”

选择“数据库设计器”

三、建立表

1、 数据库与数据表

可以先建立自由表,然后再添加到数据库中

建立新的数据库表,系统会将其自动加入到数据库中。

2、 建立自由表

注意:自由表独立于任何数据库,如需要课添加到数据库中,但不能同时

将一个表添加到多个数据库。

预备知识:建立表必须首先建立表的结构

即要描述各个字段的字段名、字段类型、字段宽度、如果是数

值型还有小数位数,以及索引、是否再字段中允许空值(选择NULL)

3、 建立数据库表

有三种方法:

法一、“文件”菜单“新建”,显示新建对话框

选择“表”和单击“新建文件”钮

在创建对话框中输入新数表名称和单击“保存”钮

法二、再建立完数据库后,不关闭“数据库设计器”窗口,单击鼠标右键后

选择快捷菜单种的“新表”,单击“新表”钮,再创建对话框输入表 名

后“保存”

法三、使用数据库设计器工具栏

(“显示”菜单“工具栏”)

选择“数据库设计器”工具栏种的第一个钮“新建表”

二、使用命令建立数据库、数据库表

1、 建立数据库

CREATE DATABASE 数据库名称

2、 建立数据库表

CREATE TABLE │DBF 表名 [FREE]

(字段名1 字段类型 [(字段宽度 [,小数位数] )]

[(字段名2……]

二、使用向导建立查询

1、查询形式分类:查询向导:标准查询

交叉表向导:以电子表格形式输出查询结果

图形向导:以电子图形形式输出查询结果

2、使用查询向导建立查询步骤:

[0]使用查询向导前必须先打开用到的库表或自由表

⑴字段选取

⑵记录筛选

⑶选择排序方式

⑷查询完成(选择保存并运行)(浏览查询)

⑸打开查询设计器,修改查询

工具/材料

Sql Server 2014

01

首先打开SQL Server的管理工具,然后找到一个数据库,选中其中的表,右键选择新建表,如下图所示

02

在新建表页面,我们首先来建立表的主键,如下图所示,主键用uniqueidentifier类型,注意一定要有默认值,如下图所示

03

然后选择主键行,右键单击,在d出的界面中选择设置主键,如下图所示

04

接下来我们在来看一下文本类型怎么设置,如下图所示文本类型用nvarchar类型

05

然后数字类型的话运用int类型或者bit类型,对于货币的话还可以运用decimal类型,如下图所示

06

另外需要声明的一点是,在设计每一个字段的时候尽量添加上这个字段的说明,以便于其他人阅读

07

接下来在提一个日期类型,注意日期类型的默认值写法,里面的值你根据自己的实际需要设置即可

08

最后,当你所有的字段都是设置完了,你就可以保存表结构,输入完表名称就可以了

多对多关系至少需要3个表,我们把一个表叫做主表,一个叫做关系表,另外一个叫做字典表或者副表(字典表是纪录比较少,而且基本稳定的,例如:版块名称;副表是内容比较多,内容变化的,例如)。

按照数据库的增删查改 *** 作,多对多关系的查找都可以用inner join或者

select from 主表 where id in (select 主表id from 关系表)

1,角色任命型

特点:关系表两外键组合无重复纪录,关系表一般不需要时间字段和主键,有一个表是字典类型的表。

界面特点:显示主表,用checkbox或多选select设置多选关系。

例如:任命版主(用户表-关系表-版块名称表),角色权限控制等,用户是5个版块版主,只要关系表5行纪录就可以确立,关系表的两个外键具有联合主键性质。

增加关系:如果没有组合纪录,insert之。

删除关系:如果有组合纪录,删除之。

2,集合分组型

特点:同角色任命型类似,关系表两外键组合无重复纪录,关系表一般不需要时间字段和主键。区别是主副表都不是字典表,可能都很大不固定。

界面特点:显示主表,用搜索代替简单的checkbox或多选select,或者一条一条的添加。

例如:歌曲专集(专集表-关系表-歌曲表)。手机分组(分组表-关系表-手机表)。用户圈子(圈子表-关系表-用户表)。文章标签(文章表-关系表-标签表)

增加关系:同版主任命型。

删除关系:同版主任命型。

3,明细帐型

特点:关系表可以有重复纪录,关系表一般有时间字段,有主键,可能还有文字型的字段用来说明每次发生关系的原因(消费)。

界面特点:显示关系表,用radio或下拉设置单选关系。

例如:现金消费明细帐或订单(用户表-订单表-消费原因表),用户可能多次在同一事情上重复消费。积分变化纪录也属于这类。

增加关系:不管有没有组合纪录,insert之,纪录时间。

删除关系:根据关系表PK删除。

4,评论回复型

特点:同明细帐型关系表一般有时间字段,有主键,区别是重点在文字型的字段用来说明每次发生关系的内容(评论回复)。

界面特点:回复文本框。

例如:论坛回复(用户表-回复表-帖子表),用户可能多次在不同帖子上评论回复费。

增加关系:不管有没有组合纪录,insert之,纪录时间和文字。

删除关系:根据关系表(回复表)PK删除。

5,站内短信型

特点:主副表是同一个,关系表一般有时间字段,有主键,重点在关系表文字型的字段用来说明每次发生关系的内容(消息)或者其他标记位来表示文字已读状态时间等。

界面特点:回复文本框。

例如:站内短信(用户表-短信表-用户表),用户可能给用户群发或者单发,有标记位来表示文字已读状态时间等。

增加关系:不管有没有组合纪录,insert之,纪录时间和文字。

删除关系:根据关系表(回复表)PK删除。

6,用户好友型

特点:主副表是同一个,同集合分组型,关系表两外键组合无重复纪录,关系表一般不需要时间字段和主键。

界面特点:同集合分组型,显示主表,用搜索代替简单的checkbox或多选select,或者一条一条的添加。

例如:下载站点的文件,(文件表-关系表-文件表)可以被软件工具打开,软件工具本身也是一种文件,可以被下载。用户的好友,也是用户(用户表-好友关系表-用户表)

增加关系:同版主任命型。

删除关系:同版主任命型

以上就是关于数据库怎么设计多对多的数据表全部的内容,包括:数据库怎么设计多对多的数据表、怎样建立数据库表格、SQL Server如何设计表结构等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9865459.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存