gpt4 book ai didi

mysql - 包含引用同一个表的两个外键的复合主键 : SQL Server vs. MySQL

转载 作者:可可西里 更新时间:2023-11-01 07:47:53 24 4
gpt4 key购买 nike

我已经阅读了很多关于常见的一对多/用户对 friend 场景的数据库表设计的帖子。一篇帖子包括以下内容:

USERS

* user_id (primary key)
* username

FRIENDS

* user_id (primary key, foreign key to USERS(user_id))
* friend_id (primary key, foreign key to USERS(user_id))

> This will stop duplicates (IE: 1, 2) from happening, but won't stop reversals because (2, 1) is valid. You'd need a trigger to enforce that there's only one instance of the relationship...

粗体部分促使我提出问题:SQL Server 和 MySQL 处理这些类型的复合键的方式有区别吗?两者都需要发帖人提到的这个触发器,以确保唯一性吗?

我问,因为到目前为止我一直在 SQL Server 中使用类似的表结构,没有任何此类触发器。我是否幸运地没有遇到这条潜伏在草丛中的数据复制蛇?

最佳答案

是的,所有的 DBMS 都会一视同仁。原因是 DBMS 假定该列有意义。也就是说,元组不是由无意义的数字组成的。每个属性都有意义。 user_id 被假定为与 friend_id 具有不同的含义。因此,设计者有责任建立一个规则,声称 1,2 等于 2,1。

关于mysql - 包含引用同一个表的两个外键的复合主键 : SQL Server vs. MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3687285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com