mysql创建三个表相互关联_mysql – 在三个表之间创建关系
What I’ve thought about here is using the ID from the junction table ‘pricelist_products’ as a foreign key within the prices table, but this feels really…. hacky?
也许这里的问题只是一个观点.联结表的目的是在多对多关系中唯一定义每个组合(最初:pricelist到product).这可以在具有字段product_id和pricelist_id的联结表中实现,并且没有代理键id.
当然,如果您使用PRIMARY KEY(product_id,pricelist_id)定义了联结表,则此表将无法在考虑价格时唯一定义组合.因此,您将第三个ID添加到联结表.在定义仅两个表之间的关系时,您似乎将此字段视为必要的代理键.但是,由于此字段的实际效用与第三个表相关,因此您可以将其命名为price_id,将联结表命名为pricelist_product_price,并在所有三个字段上定义主键(例如).这更清楚地说明了每个领域的目的,因此在实践中可能不会感到“hacky”.
我不知道这是否是数据库设计的最佳实践,但请记住,没有理由必须完全规范化每个数据库.您需要具有合理数量的灵活性和可扩展性的良好性能(这对于休闲博客来说意味着一件事,对于小型企业来说则是另一回事),并且通常可以通过某种程度的非规范化设计来实现.
编辑补充说:好的,还有一个我忘了提及的改变将属于“好”的设计或最佳实践.在您的图片中,价格表中有两个ID字段,其中一个就足够了.正如@Gilbert Le Blanc指出的那样,你应该尽量避免模糊的字段名称,比如有多个id字段,即使它们在不同的表中.这将帮助您查看字段的实用程序,识别自然键并消除冗余.
mysql创建三个表相互关联_mysql – 在三个表之间创建关系相关推荐
- mysql两表左关联_mysql中一张表LEFT JOIN 左关联两张表语句
先看实例 代码如下 复制代码 SELECT p.price, pd.name, m.manufacturers_name FROM (products p LEFT JOIN products_des ...
- mysql中数据表如何关联_mysql 如何导入/导出2个关联表中的数据
mysql 怎么导入/导出2个关联表中的数据 表一 id student 1 S1 2 S2 表二 id sid scord order 1 1 100 1 2 1 60 2 3 1 80 3 4 2 ...
- mysql分库分区分表怎么做_mysql 分区、分表、分库分表。
一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看:mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个磁 ...
- MySQL简单表的数据_MySQL(二)表的操作与简单数据操作
六大约束:主键约束.外键约束.非空约束.唯一约束.默认约束.自动增加 1.not null非空 2.defaul默认值,用于保证该字段的默认值 ; 比如年龄:1900-10-10 3.primar k ...
- mysql 中间表的好处_Mysql中使用中间表提高统计查询速度
对于数据量较大的表,在其上进行统计查询通常会效率很低,并且还要考虑统计查询是否会对在线的应用产生负面影响.通常在这种情况下,使用中间表可以提高统计查询的效率, 下面通过对session 表的统计来介绍 ...
- mysql 分表后排序_MySQL优化分库分表,为什么要分表,分表以后如何进行排序查询,业务如何设计?...
昨天面试新人的时候,遇到了这么一个问题,按照自己的想法大体聊了一些,但大多是感性的,并没有完整的了解why and how. 今天查了一些相关的资料,包括<MySQL性能调优与架构设计>. ...
- mysql 吧库下的表名都加_MySQL 数据库名、表名、字段名大小写敏感记录
问题如下: 比如上图中的PERSON表,查询SQL语句中如果表名是小写,就会报错说person表不存在. 因为Linux环境下的MySQL数据库的表名默认是区分大小写的,可以查看Linux上的MySQ ...
- mysql删除表编码字段_mysql 修改 添加 删除 表字段
mysql 修改 添加 删除 表字段 添加表的字段 alter table 表名 add 字段名 字段的类型 例子: alter table table1 add transactor varchar ...
- mysql如何两个表取差集_mysql 查询两张表的差集
今天在做一个小功能的时候,遇到了需要取两个表的差集,本来可以直接通过两次查表然后通过代码去处理. 由于我个人比较喜欢减少数据库交互,所以在网上查了下关于mysql两个表取差集的方案.但是发现很多的 差 ...
最新文章
- java 解析证书_java 读取证书类以及key tool gui 1.7
- IOS的UI基础02
- 怎么看java中ide_如何在eclipse IDE中查看Java的字节码?
- 关于js的回调函数的一点看法
- 微信小程序页面跳转的方法
- C语言 | 内部与外部函数
- [vue] 说说你对vue的mixin的理解,有什么应用场景?
- java解压缩.zip文件
- 安卓蓝牙键盘切换输入法_超薄无线蓝牙双模罗技K580键盘,自由切换享受打字快乐...
- swift可选隐式可选类型
- 【UVA524】Prime Ring Problem(素数环--递归回溯+全局变量的一个小坑点---水题)
- 大数据用户画像方法与实践(干货 转帖)
- python中度数怎么表示_python中如何将华氏温度转换为摄氏温度?
- html给图片坐标没连接,4-HTML中的 a, img/标签使用及锚点,路径相关
- c语言偶数求和while,C语言中编程计算1至100以内的奇数和偶数并分别求和,求代码...
- 电脑b站html加速播放,b站视频怎么加速播放-将B站视频调速播放的方法 - 河东软件园...
- 最少的脚本实现在NSH脚本作业中加入动态参数
- R WinBugs network meta analysis
- otg android 键盘,使用USB OTG将手机、平板连上键盘、U盘
- Allegro 异形焊盘的制作方法