在数据库中收藏东西 - 最有效的跟踪方法?

时间:2010-04-13 02:33:22

标签: mysql

我正在开发一个类似论坛的网络应用程序,我希望用户可以让用户喜欢一个项目,这样他们就可以跟踪它,也可以让其他人看到一个项目受到青睐的次数。< / p>

问题是,我不确定数据库的最佳实践,包括这种情况。

我脑子里有两个想法如何做到这一点:

  1. 在用户表中添加一个额外的列并存储如下内容:“| 2 | 5 | 73 |”
  2. 添加一个至少包含两列的额外表,一列用于引用一个项目,另一列用于引用用户。
  3. 我为第二种方法感到不舒服,因为它涉及一个额外的表,可能需要更多的查询。也许这些信念不是问题,因为除了简单地使用表格布局和基本查询之外,我对数据库几乎一无所知。

2 个答案:

答案 0 :(得分:3)

第二种方法,通常称为junction or join table,是相当标准的做法,并且比将您描述的列添加到用户表中的效率要高得多。通过JOIN的魔力,您将不会进行任何额外的查询。

由于听起来您的应用程序开始变得有点复杂,我强烈建议您在当地图书馆或书店购买MySQL数据库书(检查亚马逊上的评论以找到一个好的)并扩展您的知识。

答案 1 :(得分:1)

好吧,我对其他回应有+ 1 - 但显然我太过新了。但是,我推荐这种类型的连接表。