首页 > 代码库 > 数据库那点事儿
数据库那点事儿
客串:屌丝的坑人表单神器
推荐:手把手教你做关键词匹配项目(搜索引擎)---- 第十七天
文章开始之前,我先吐槽一下:现在的应届毕业生丫,不知大学四年都干了什么,难道时间都花在恋爱上面,就算你想恋也没得爱可给你恋的,你确实恋了的,我只能认为你在搞基。
虽然我也是从大学四年搞基出来的,至少有些东西还是没丢给老师。
目录:
1. 数据类型
2. 存储引擎
3. 名词解析
4. 实体 VS 类
5. 关系型 VS 面向对象
文章开始之前,还是先吐槽一下:那些从学校步入社会的人们丫,多上点心,别天天还搞基,伤身又伤心,底子薄没事,不肯前进就是大事了,不是每个头头都这么好心,还一点一点给你们写培训文档。
本文都是Mysql为基础。
1. 数据类型
1) 整数型
tinyint
int
bigint
当我问起int(20) 和int (12) 有区别吗?(括号里面是长度)全场沉默了......
2) 数值型
decimal
当我问起decimal 10,当数值长度操过10了,会怎么样? 万一是金融行业呢,你该咋办? 全场沉默了......
3) 字符型
char
varchar
当我问起char(2) 和varchar(2)有区别吗?(括号里面是长度)全场沉默了......
当char字段和varchar字段使用索引的时候,他们有区别吗?全场沉默了......
tinytext
text
mediumtext
text最大的大小是多少?text字段可以用索引吗? 全场沉默了......
4)时间型
datetime
timestamp
datetime跟 timestamp有区别吗?区别在哪里? 全场继续沉默了......
5)枚举型
enum
一位童鞋站起来问到,enum(Y,N) 和 char(1)有区别吗?
2. 存储引擎
innodb
myisam
memory
当我问起 innodb、 myisam有什么区别的时候,一位技术牛人,站起来,一棍子打死一群人,说直接用innodb就是了,现在的版本mysql默认都是推荐你使用innodb。
如果真要说起来,就说到锁了,这又是坑爹的话题。 还是那位技术牛人高....
3. 名词解析
完整性
冗余
实体
实体的关系
关系型
某位童鞋直接站起来说道:都扔给老师。 真的是佩服那位健忘的童鞋,有健忘症真好,我这课我也丢给老师了。
4 实体 VS 类
该篇开始,我要说个知识:现在很多公司都是由下往上开发,今天我给你们讲的是从上往下开发。
当时有位比较资深的人员就说到,由下往上都是老一辈人喜欢的,因为那段时间里他们的思想没受到面向对象编程的侵袭。
从上往下是你们这群90后乐意做的事。
由下往上:数据库关系--->代码编程---->界面
由上往下:界面--->代码编程---->数据库关系
这是要逆天的存在,先不管是否是不是逆天,先看下面的实例:
class Person { public $name; public $age; public $sex; public $weight;}
然后找了个童鞋转了下数据结构
id int | name varchar(50) | age int | sex enum("男","女") | weight int |
这位童鞋确实给力。
然后我又写了.
$person1 = new Person();$person1->name = "张三‘;$person2= new Person();$person2->name = "李四‘;
这位童鞋又写出了如下
id int | name varchar(50) | age int | sex enum("男","女") | weight int |
1 | 张三 | |||
2 | 李四 |
我相信当你看到这些,你应该知道发生了什么了吧!
我继续写到:
class Person { public $name; public $age; public $orders = array(new Order(),new Order());}class Order { public $money; public $items = array( "手把手教你做关键词匹配项目", "屌丝的坑人表单神器" );}
90后的小伙子很快就完成了:
order表:
order_id | person_id | money |
order_item表:
item_id | order_id | item_name |
看了这个我翻然大悟,原来现在的应届生对类感兴趣,对实体和实体与实体之间的联系免疫了。
我大悟了,不知道那些童鞋了解了没有,毕竟这个培训是给那些童鞋的。
5. 关系型 VS 面向对象
面向对象 =>关系型 (90后太厉害了,不提了)
最终总结:课后,他们希望我下节课讲解下数据库如何优化,我只能吐槽下:尼玛,连tinyint,char,varchar,索引,锁都搞不懂就来学数据库如何优化,这是要整哪样?
当然我也对他们乐于要求感到高兴,毕竟有需求就有动力。
当然那么多为什么,还是要解决的,靠什么解决呃,我已经全丢给老师了,咋办? 下面评论区肯定有热心人来吐槽这些问题的,放心吧.....
数据库那点事儿