mysql - 在 MySQL 的一个字段中有多个 FK 是个好主意吗?

标签 mysql database-design

我正在建立一个数据库,我对拥有一个类似 facebook 的好友系统很感兴趣。 我最初的计划是有一个像这样的表:

uid  friends
4    30,23,12,33
30   54,92,108

所有这些数字都是包含用户信息的表的 FK。 有人告诉我这是不可取的,而且实际上是不可能的,因为如果 FK 是单元格中唯一放置的 FK,MySQL 只会很好地处理它们。 所以也许是这样的?

uid(PK) friend
4        30
4        23
4        12
30       54
30       92
30       108

等等。 这不会给我留下大量的行吗? (成千上万?) 就时间和效率而言,第一种技术是否不值得?

最佳答案

10 的几千行是小菜一碟,即使对于 Mysql 也是如此。没有其他方法可以模拟多对多关系。您将拥有这些 ID 的索引,其性能比子字符串比较好很多个数量级。

关于mysql - 在 MySQL 的一个字段中有多个 FK 是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/592477/

相关文章:

mysql - Docker mysql - 在镜像启动时运行更新命令/脚本

mysql - 使用 SQL 语句计算天数、缺勤和迟到

Python,求和返回的MySQL数据

mysql - 对数据库结构的意见和建议

php - MySQL如何处理大表? (游戏的数据库设计)

sql - 数据库设计中如何避免一列表

mysql - 为什么我可以创建名为 "key"和 "value"的表列,但以后不能使用它们?

mysql - 外键困境

xml - sqlite、xml 还是组合?

mysql - 获取连接表中有 2 个或更多条目匹配条件的记录