【发布时间】:2013-04-20 11:54:24
【问题描述】:
问题:我正在开发一种有卖家和买家的电子商务平台。现在在我的情况下,卖家也可以是买家,即每个用户都可以买卖。
所以我有一个名为 users 的表。现在我想实现一个关注供应商/用户功能,其中用户可以点击 follow 并且他会看到该列表列出的所有商品供应商在他的帐户下(直到他取消关注)。
现在我的传统方法是有一个有一个键和两列的表来存储 follower 和 follow 例如:
|id | userId| vendorId
所以它会随着用户继续关注其他人而水平移动。但是如果我有一个用户关注很多人(比如 100),我的查询可能需要很长时间才能选择一个每个用户 100 条记录。
问题:如何实现follow机制?还有比这更好的方法吗?我用的是PHP和Mysql。
Reasearch:我尝试了解 facebook 和 Pinterest 是如何处理它的,但这对于我现在学习来说似乎有点太大了,因为我不希望立即有那么多用户。我是否需要使用 memcache 来提高性能并避免重复查询?我可以在任何意义上使用与 Mysql 并行的文档数据库吗?
我想要一个简单但功能强大的实现,如果我的用户群逐渐增长到几千,它可以扩展。
任何帮助或见解都会非常有帮助。
【问题讨论】:
-
您是否想过使用逗号分隔的值来存储供应商名称,例如 id|用户名| vendorId1、vendorId2、vendorId3 等
-
@Sid 这到底会如何提高性能?
-
@user1615903 保存带有供应商名称的字符串的单个列可能会提高性能。例如,您不会将数据放在不同的页面中,而是放在一个地方。但这会使控制数据完整性变得更加困难,并且可能会降低性能。这将使搜索观察供应商的用户几乎是不可能的。可能这不值得所有的麻烦,但它可能会起作用。
标签: php mysql web-applications memcached