1

作为这个问题的序言,我应该说我对数据库效率知之甚少,这很快就会变得显而易见。

这是一个相当简单的问题:

我想在 mysql 数据库中存储对事件的出席。我想到了两种可能的方法(我敢肯定还有更多):

  1. 在表中创建一个附加attendanceevents,其中包含一个逗号分隔的用户 ID 列表
  2. 创建一个attendance包含两列的表,event_id然后user_id

我的直觉说方法 2 将是最有效的——尽管必须返回和遍历多行,但这可能比在user_id连接字符串中搜索特定的成本更低......

谁能证实这一点?

4

2 回答 2

3

创建一个新表!

否则,您没有利用 MySQL 的关系方面,并且您运行的每个查询都必须解析 csv 条目的结果(非常低效)

于 2012-05-23T21:22:30.747 回答
1

第二种选择更好。在逗号分隔的字符串中搜索非常耗时。

但是,在第二个选项中,请确保 theevent_id和 the user_idare FOREIGN KEYS

这将INDEX列,您将获得更好的搜索结果。

于 2012-05-23T21:27:09.590 回答