需要DB设计建议

时间:2014-08-28 11:54:54

标签: mysql sql database facebook database-design

我正在寻找一些关于我正在进行的设计的建议。情况就是这样:

我有一个包含会议桌和用户表的数据库。每个会议都有一个组织,它对应于用户的用户ID。此刻Verry简单。

现在通过facebook api,我得到了每个人的朋友列表。我想在我的数据库中搜索我朋友组织的会议。我想到的第一件事就是在查询中只是一个简单的IN('朋友列表'),但我可以想象这会破坏性能。

现在的想法是创建一个包含userID和friendID的额外表,并在查询中加入该表。

有人对什么表现最好有一些建议。其他解决方案当然非常受欢迎;)

THX

<磷>氮

PS。 MySQL DB

1 个答案:

答案 0 :(得分:1)

IN这里不是一个根本问题。但如果给定的DBMS优化器不是很好并且无法产生最佳查询计划,那么它可能是一个实际问题。但在这种情况下,您通常可以重写查询以使用不同的语法(例如JOIN)来完成相同但允许优化器生成更好的计划。

MySQL因未充分优化INs而臭名昭着,因此默认情况下人们倾向于使用JOIN。其他DBMS通常没有这样的限制。最好自己测试一下性能on representative amounts of data,看看你是否确实遇到了问题。

顺便说一句,无论如何,你需要在会​​议和用户之间建立一个联结表 - 毕竟,如果没有多个参与者,会议的目的是什么?如果组织者也应被视为参与者,您可以这样做:

enter image description here