数据库入门到精通(编程)-002-数据库是长什么样

       一个数据库软件里面好多个数据库(Database)。每个数据库(学生信息库)里面有好多张表(基本信息表、成绩表、宿舍表)。软件->数据库->表格table ->行(一行一个记录record,比如说一行记录某个学生的信息)与列(具体的信息,姓名学号、性别、备注也叫字段Filed)。

每一行就是一个记录。请记住这些英文单词,作为一名数据库开发者。

一行一条信息,不允许一模一样的完全一样的行。正常用一个ID作为区分,专业名称叫做主键(PrimaryKey)作为唯一标识。

编程的时候,要考虑好唯一标识,以ID、学号、身份证之类的。有时候,要知道虽然学号是唯一的,但是如果是一个学生活动记录。看下面的表,学号虽然是唯一,但不是不重复的,永远单一的。
ID  学号  姓名  做事 

1   123  小明    打游戏

2    123  小明   睡觉

表一

 

反而 第几条记录(ID),是不可能重复的,可以作为主键。主键不可能为空NULL,可以由数据库自己增加记录(第几条记录)

主键可以分为业务主键与逻辑主键。

业务主键与实际业务有关的(身份证,学号)

逻辑数据随机生成的ID (没有实际意义,但是程序里面使用)

当然了,有的人会问,我只是记录学生信息,每一个学生就一个行就一个学号,这样学号就能作为主键:

学号  姓名       入学时间

123  小明         2018

456  小宏        2019

789  小歌        2021

101 小相         2020

102 小相          2021

表二

这样学号就作为主键作为唯一标着。是的,这是对的。甚至一些情况下有的人两列(名字、入学时间)作为唯一标识。
这些都是可能的,但是你能预测到未来你新加的记录,一直不可能重复你的想法一直很全面?

正常将是使用逻辑主键而不使用业务主键。那么业务类型的唯一编号就不存在价值?

可以作为外键

看下表一与表二,他们的关联就是学号!

一:首先是外键的定义

       当有多张表格的时候,表一学号作为表二的外键,作为一张关联,表二是主表学生信息表,表一的从表、学生行为记录表。

二:主键表和外键表的理解

(1)以公共关键字作主键的表为主键表(父表,主表)

(2)以公共关键字作外键的表为外键表(从表,外表)

学号  姓名       入学时间  做事  奖罚

123  小明         2018        游戏   一块

456  小宏        2019        动漫    两块

789  小歌        2021        视频    三元

101 小相         2020        看书    四块

102 小相          2021        睡觉   负一元

 有些人可能回想,把学生信息与行为作为一张表。多简单。

但是也没有考虑到,没有你要加一条记录,比如说,小明 睡觉 喝水 洗澡,那么你每一行就得加 学号 姓名 奖罚的信息。

可是一是,这些信息是重复的(姓名,入学时间),而是这些信息可能是没有的(奖罚)。这样对于效率与存储机制来说是愚蠢的,想象一下,一个像腾讯一样的公司,每次登陆一个微信号就得把你的好友信息,朋友圈信息加载,用户量那么大,系统会奔溃的,成本大大增加。 合理的数据库安排表格,对于一名好的程序员来说是至关重要的。 

这是一种思想,请记住:合理分配唯一ID,分类表格结构。

关键词:数据库 表 记录 行 列 主键 外键 ID

下一遍:介绍完数据库基础结构,数据库软件外表长什么样。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值