• 简短的查询优于较长的查询

  • 原子性数据:

    (1) 定义:它已经被分割至最小块,不能或不应该再被分割

    对于同样的信息,不同的表对于原子性数据的需求不同

    示例

      地址包括街道 + 门牌号,对于外卖来说,它们应该合在一列存储;对于房地产中介来说,应该分成两列存储
    

    (2) 规则一

    具有原子性数据的列不会有多个类型相同的值

    示例

      food_name |      ingredient------------------------------bread   |  flour, milk, egg------------------------------salad   |  lettuce, tomato------------------------------在这张表中,flour,milk,egg等都是类型相同的值,它们放在同一列存储,意味着想在bread中找到某个具体的成分很困难
    

    (3) 规则二

    具有原子性数据的表中不会有多个存储同类数据的列

    示例

      teacher_name | student1 | student2 | student3 |-----------------------------------------------Martini   |   Joe    |    Ron   |  Kelly   |-----------------------------------------------Howard    | Sanjaya  |    Tim   |  Julie   |-----------------------------------------------student1,student2,student3都是存储同类数据的列
    
  • 第一范式 1NF

    (1) 每个数据行必须包含具有原子性的值

    (2) 每个数据行都要有主键

  • 主键

    (1) 表中某一列,可以保证记录的唯一性

    (2) 主键不可以为NULL

    (3) 最佳主键是新的主键--id列

  • AUTO_INCREMENT设置的自增从1开始(和SQL的习惯一样)

    示例

      CREATE TABLE my_contacts (id INT(4) NOT NULL AUTO_INCREMENT,name VARCHAR(10) NOT NULL,PRIMARY KEY (id));
    

    AUTO INCREMENT每个表只能有一列可以使用

chapter04_聪明的表设计相关推荐

  1. 美多商城之商品(商品数据库表设计)

    一.商品数据库表设计 1.1 SPU和SKU 在电商中对于商品,有两个重要的概念:SPU和SKU 1. SPU介绍      [即为商品的一个概述,一种商品的统称] SPU = Standard Pr ...

  2. 万亿级企业MySQL海量存储分库分表设计实践

    互联网业务往往使用MySQL数据库作为后台存储,存储引擎使用InnoDB.我们针对互联网自身业务特点及MySQL数据库特性,讲述在具体业务场景中如何设计表和分表.本文从介绍MySQL相关基础架构设计入 ...

  3. 数据库 mysql 表设计,数据删除

    文章目录 视频 表设计 一对一 一对一,附加表加外键,外键唯一. 一对多 一对多,两张表,多的表加外键 多对多 多对多,三张表,关系表两个外键 表删除数据 先删除子表(外键),再删除父表(主键) 视频 ...

  4. mysql datetime 对于hbm_MySQL库表设计小技巧

    前言: 在我们项目开发中,数据库及表的设计可以说是非常重要,我遇到过很多库表设计比较杂乱的项目,像表名.字段名命名混乱.字段类型设计混乱等等,此类数据库后续极难维护与拓展.我一直相信只有优秀的库表设计 ...

  5. HBase概念学习(八)开发一个类twitter系统之表设计

    这边文章先将可能的需求分析一下,设计出HBase表,下一步再開始编写client代码. TwiBase系统 1.背景 为了加深HBase基本概念的学习,參考HBase实战这本书实际动手做了这个样例. ...

  6. Oracle数据库表设计时的注意事项

    Oracle数据库表设计时的注意事项  表是Oracle数据库中最基本的对象之一.万丈高楼从平地起,这个基础对象对于数据库来说,非常重要.因为其设计是否合理,直接跟数据库的性能相关.从Oracle数据 ...

  7. 数据库表设计的随笔(分库分表)

    笔者目前就职的是一家创业型的互联网公司,既然算是互联网公司,那么就会设计到无论是应用系统还是数据库的分布式.下面简单介绍下有关数据库方面的一些设计. 数据库表的设计,根据自己的业务所需可以拆分成多库. ...

  8. 关于用户表设计及多用户登入限制

    1.数据表设计 用户通用信息表 CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`nickname` varchar(32) NOT ...

  9. mysql栏目表设计_MySQL表设计

    文章摘自: https://mp.weixin.qq.com/s?__biz=MzI2NDU3OTg5Nw==&mid=2247483799&idx=1&sn=4d1f45ab ...

最新文章

  1. JMeter压力测试入门教程[图文]
  2. libevent简介和使用【转】
  3. ASP.NET之纠错
  4. java传入一个字符串 将它分割成大写字符为首的字符串数组
  5. thinkphp中__construct与_initialize()的区别
  6. 解决ubuntu下eclipse 经常崩溃的问题
  7. 使用计算机时 开关机顺序会,电脑如何正确开关机
  8. AE进度条读取动画插件 LoadUP 1.71
  9. python怎样填充颜色_python中如何给图形填充颜色
  10. 根据在同一时间使用计算机,3.根据在同一时间使用计算机用户的多少,操作系统可以分为单用户操作系统和多用户操作系统。...
  11. linux es数据库 head,centos7安装Elasticsearch及Es-head插件详细教程(图文)
  12. 软件工程项目____搜查令
  13. binwalk、foremost、dd隐藏文件分离
  14. 双机流水作业调度问题——Johnson算法
  15. mysql如何导出数据脚本_MySQL 导出数据
  16. 苹果手机人脸识别不了是什么原因_苹果:iPhone人脸识别能秒了所有安卓手机!...
  17. 引流脚本有没有效果,引流脚本是什么
  18. 创建学生表,课程表,班级表,班级课程表
  19. Linux实战教学笔记15:磁盘原理
  20. beaglebone black下接nrf24l01与RFID标签的通信(基于EZSDK linux平台)

热门文章

  1. Windows找不到文件c:program files怎么办?
  2. 图文并茂详尽剖析圆排列问题
  3. 最佳编程语言_2020年最佳职业和未来编程语言
  4. 使用数据挖掘软件Rapidminer进行关联规则分析
  5. Eolink 携手云体科技 ,共同构建汽车 DevOps 新生态
  6. STM32F103学习笔记——SPI读写Flash(二)
  7. 读书《重生,七年就是一辈子》
  8. sql2000安装程序配置服务器失败
  9. C# Interview Questions and Answers
  10. 【小猪佩奇漫画】| 复杂度分析原来那么简单!