【问题标题】:Best method for storing multiple ID's in MySQL for querying large result sets在 MySQL 中存储多个 ID 以查询大型结果集的最佳方法
【发布时间】:2015-10-03 08:48:41
【问题描述】:

我想保存客户订阅的电子邮件列表。我可能有:

电子邮件列表:

ID    Name
1     Coupons
2     Monthly Newsletter
3     Company News

现在,用户可以根据需要订阅任意数量的列表。假设我有三个用户:

用户:

ID    Name    Lists
1     Bob     1,3
2     Jane    2,3
3     Tom     1

现在我需要查询所有订阅列表 #1 的用户 ID:

SELECT ID FROM users WHERE Lists LIKE '%1%'

有没有更好的方法来存储每个用户的列表 ID,这样可以更有效地执行查询?

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    第三张桌子subscrib 将是最好的:

    UserId    ListId
    1         1      // Bob, Coupons
    1         3      // Bob, Company news
    2         2      // Jane, Monthly Newsletter
    2         3      // Jane, Company news
    3         1      // Tom, Coupons
    

    然后您的查询将类似于(对于Company news):

    SELECT UserId FROM subscrib WHERE ListId = '3';
    

    或者

    SELECT s.ListId, u.Email, u.Name FROM subscrib s
    LEFT OUTER JOIN users u ON u.ID = s.UserId
    WHERE s.ListId = '3';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多