数据库一对一 一对多 多对多关系
参考:https://blog.csdn.net/u013144287/article/details/79024130
自己在项目中写的实例:
‘实体’和‘公理’具有多对多关系,即一个实体可以对应多个公理,一个公理也可以包含多个实体。
多对多关系需要一张纽带表来实现。
// 实体表格create table if not exists `entity_management`
(`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',`entity_string` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '实体字符串',`entity_type` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '实体类型',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`),UNIQUE KEY `entity_management_name_uindex` (`entity_string`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;# // 公理表格,公理表示实体之间的关系。实体和公理之间存在多对多关系
create table if not exists `axiom_management`
(`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',`axiom_string` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '公理对应字符串',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`),UNIQUE KEY `entity_management_name_uindex` (`axiom_string`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;# // 实体和公理之间的纽带表
create table if not exists `EntityMapAxiom_management`
(`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '关系id',`entity_id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '实体id',`axiom_id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '公理id',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`),KEY `entity_id` (`entity_id`),KEY `axiom_id`(`axiom_id`),CONSTRAINT `entity_id` FOREIGN KEY (`entity_id`) REFERENCES `entity_management`(`id`),CONSTRAINT `axiom_id` FOREIGN KEY (`axiom_id`) REFERENCES `axiom_management`(`id`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;
数据库一对一 一对多 多对多关系相关推荐
- SQLAlchemy_定义(一对一/一对多/多对多)关系
SQLAlchemy_定义(一对一/一对多/多对多)关系 目录 Basic Relationship Patterns One To Many One To One Many To Many Basi ...
- Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作
Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作,单表查询,多表查询 一丶表与表之间的关系 背景: 由于如果只使用一张表存储所有的数据,就会操作数 ...
- 7. MyBatis多表查询 - 一对一 - 一对多 - 多对多
7. MyBatis多表查询 - 一对一 - 一对多 - 多对多 前言 在前面的篇章,我们已经熟悉了单表查询,下面我们来看看如何进行 多表查询. 数据准备 create database if not ...
- mybatis的一对一 一对多 多对多
mybatis的一对一 一对多 多对多 1.表 2.建表语句 order_t表 CREATE TABLE `order_t` ( `id` int(11) NOT NULL, `user_id` in ...
- 数据库设计中,多对多关系使用使用逗号分割关联讨论
进公司一个月,发现公司很多人喜欢用逗号分割,去存储其它表的主键,做多对多关联,但存在很多乱用现象.这里对这种方式做了下总结. 在传统数据库设计中,多对多关系存储通常都是用一张中间表来简历两张表的关系. ...
- 数据库外键:一对多/多对多关系
数据库事务四大特性ACID: 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability) 基于原子性对存在重复数据的表进行拆分 一对多 ...
- day 69-70 一对一 一对多 多对一联表查询
day 69 orm操作之表关系,多对多,多对一多对一/一对多,多对多{类中的定义方法}day691. 昨日内容回顾1. 单表增删改查2. 单表查询API返回QuerySet对象的:1. .all() ...
- JPA 一对一 一对多 多对一 多对多配置
1 JPA概述 1.1 JPA是什么 JPA (Java Persistence API) Java持久化API.是一套Sun公司 Java官方制定的ORM 方案,是规范,是标准 ,sun公司自己并没 ...
- Django一对一 ,一对多,多对多
Django 数据库一对多,多对多 目录 app01/models.py app01/views.py app01/urls.py Python_Django/urls.py 目录 app01/mod ...
最新文章
- Go语言的错误异常处理机制及其应用
- 同一列两行数据怎么合并成一行_经常加班怎么办?两分钟学会这4招,让同事刮目相看!...
- 力扣501. 二叉搜索树中的众数(JavaScript)
- [转载]SELinux安全系统基础
- Avast! 4 Server 服务器版license许可文件获得方法
- 大数据导论答案_《数据科学与大数据通识导论》题库及答案
- 如何让Word表格文字上下居中?
- linux stm32 虚拟串口驱动安装,stm32的usb虚拟串口驱动win7系统64位和32位不能正常安装的解决办法!stm32 virtual comport win7(终极解决办法)...
- Android-在线视频播放器实现
- 全球重力场模型数据下载
- Vue入门练习:小王记事本
- PowerPoint用VBA添加背景图片
- MATLAB符号计算总结
- idea的language level含义和module的language level自动跳到5
- Oracle12C SGA PGA UGA
- 芯片IC附近为什么放0.1uF的电容?难道1uF不行吗?
- 二维拉普拉斯方程的极坐标形式
- Dism++ 一款传说中“老司机”都爱用的系统工具,使用简介
- windows中安装SSH Secure Shell Client传输软件
- html和sketch文件转换,GitHub - 332065255/sketch-to-html: 从 sketch 转换成 html,我开始更新了.....