当前位置:网站首页>MySQL:完整性约束和 表的设计原则
MySQL:完整性约束和 表的设计原则
2022-08-04 10:00:00 【_索伦】
完整性约束
- 主键约束: primary key
- 自增键约束:auto_increment
- 唯一键约束:unique
- 非空约束:not null
- 默认值约束:default
- 外键约束:foreign key
一个表里只能创建一个主键,但可以有多个唯一键。
使用示例:
CREATE TABLE user(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
nickname varchar(50) UNIQUE NOT NULL,
age TINYINT UNSIGNED NOT NULL DEFAULT 18,
sex ENUM(‘male’, ‘female’));
关系型数据库表的设计
1.一对一
如图,这是两张表,一个表示用户基本信息,一个表示身份信息,
想让两张表产生关联,需要给身份信息表添加一个字段
2. 一对多
比如要做一个电商系统
- 用户User
- 商品Product
- 订单Order
分析:
用户和商品:没有关系
用户与订单:一对多关系
商品与订单:多对多关系
一对多关系:在订单子表里添加一列关联父表的主键(表示用户id的字段)。但以这样的方式,明显可以看出数据冗余,特别是成百上千的订单,会导致大批量的修改。
3. 多对多
为了解决数据冗余的问题,可以创建一个中间表。
边栏推荐
猜你喜欢
如何直击固定资产管理的难题?
LeetCode中等题之旋转图像
Win11系统重装用什么好 一键重装Win11教程
开源一夏 | 查询分页不只有limit,这四种分页方法值得掌握
被Win11安全中心误删除的文件怎么恢复?
rk3399-339 usb设备复合 总体流程
低代码是开发的未来吗?浅谈低代码开发平台的发展现状及未来趋势
leetcode经典例题——49.字母异位词分组
Could you please talk about how the website is accessed?[Interview questions in the web field]
cannot import name 'import_string' from 'werkzeug' [bug solution]
随机推荐
sqlilabs less-40
After four years of outsourcing, the autumn recruits finally landed
Techwiz OLED:OLED器件的发光效率
MindSpore:model.train中的dataset_sink_mode该如何理解?
Redis 内存满了怎么办?这样置才正确!
无代码平台描述文字入门教程
PD 源码分析- Checker: region 健康卫士
密码字典生成工具pydictor/john
OAK-FFC-4P全网首次测试
MindSpore:Batchnorm only support nchw input!
数据万象内容审核 — 共建安全互联网,专项开展“清朗”直播整治行动
蜜芽CEO刘楠:垂直电商黄金时代已落幕 坚定转型品牌之路
TCP协议 - 三次握手 - 四次挥手-内核参数调优
参数优化文档介绍
在测试集上训练,还能中CVPR?这篇IEEE批判论文是否合理?
暴力破解ssh/rdp/mysql/smb服务
【COS 加码福利】COS 用户实践有奖征文,等你来投稿!
Mysql应用日志时间与系统时间相差八小时
Inheritance and the static keyword
LVGL's multi-language conversion tool -- a good assistant for font settings