MYSQL 复合键 "FriendList"

标签 mysql composite-primary-key

我有一个表,用于存储“ friend ”关联。因此,第 1 列是用户 ID,第 2 列是 friend ID(其中 friend ID 只是用户表中的另一个用户 ID。

我一直计划为每个关系添加两个条目。为了解释一下,假设用户 100 想与 200 成为 friend 。我的表格如下所示:

USERID = 100
FRIENDID = 200
STATUS = 'friend'

但同时

USERID = 200
FRIENDID = 100
STATUS = 'friend'

他们接受好友请求后。这个想法是,关系是双向定义的,因此我可以根据他们是否“请求友谊”或者用户是否想要对 friend 进行分类或添加自定义注释来设置不同的状态。

我想使用 userID 和 FriendID 列作为组合键,但是如果我在两个地方使用相同的 userID 和 FriendID 组合(即使它们颠倒了),MYSQL 会不会崩溃?

最佳答案

您应该将 FriendID 和 UserID 作为组合键。这意味着同一个友谊不能有两种不同的状态。 MySQL为什么会崩溃?

关于MYSQL 复合键 "FriendList",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21198614/

相关文章:

primary-key - SQL Server "pseudo/synthetic"复合 ID(键)

ruby-on-rails - 保存后复合主键不更新

mysql - 多重连接显示多条记录

mysql - 在子查询中引用外部查询

php - MySQL 不会选择相同的 id 两次

composite-primary-key - Hyperledger 中的复合键函数

mysql - 使用复合主键的 RIGHT JOIN 不检索所有数据

javascript - 在 Laravel5.0 中将 google chart 与 mysql 数据库中的数据集成

php - 使用查询填充 Moodle 表单中的选择元素

php - MySQL 重复输入键 'PRIMARY' 但有点奇怪