表设计学习1:主键_MySQL
程序员文章站
2024-01-31 21:39:52
...
bitsCN.com
1.表中的数据应该具有原子性,也就是列中所包含的信息可以满足最高效率的查询操作,但这仍不足以达到第一范式
2.每个数据行必须有独一无二的识别项,也就是所谓的主键(Primary Key)
3.主键是表中的某个列,它可以让每一条记录成为唯一的
4.可以重复的数据列绝对不可以作为主键,类似身份ID也不可以,因为一旦数据库被入侵,就意味着客户资料被曝光
5.主键不可以为NULL,如果主键是NULL,它就不可能唯一,因为其他记录也可能包含NULL
6.插入新记录时必须指定主键值,如果没有主键值就意味着存在主键值是NULL的风险,而且可能让表存在重复记录,违反了规范原则
7.主键必须干净简洁,不应该有冗余内容
8.主键值不可以被修改,如果可以改变主键值,那就会冒着意外输入已使用值的风险,破坏主键的唯一性
9.创建主键的最佳方式是建立一个包含唯一性主键的列,比如编号ID列
示例:
mysql> CREATE TABLE student( -> id INT PRIMARY KEY NOT NULL, -> first_name VARCHAR(20), -> last_name VARCHAR(30) -> );Query OK, 0 rows affected (0.16 sec)
此处将id列设置为主键,并且设置NOT NULL约束,使其不为空
然后分别建立两个原子性的数据列
bitsCN.com
推荐阅读
-
MySQL如何设计课程表的数据库
-
MySQL学习12:修改数据表(二)
-
MYSQL设计表时,亟需 两个TIMESTAMP 字段的情况
-
[MySQL FAQ]系列 -- utf8表存储latin1乱码字符转换
-
MySQL学习12:修改数据表(二)
-
mysql创建表,主键自增操作讲解及插入中文时报错的解决办法
-
如果mysql 某个表存1亿左右的数据 速度 和性能 有问题吗?
-
MySQL学习记录1(基础)(MySQL in a nutshell)_MySQL
-
head first设计模式 《Head First 设计模式》代码之PHP版面向对象学习第1/2页
-
mysql数据库的特点、设计规则、约束还有设计表知识讲解