实施";跟随;使用PHP和Mysql的用户特性
问题:我在一种电子商务平台上工作,该平台有卖家和买家。现在,在我的情况下,卖家也可以是买家,即每个用户都可以买卖。实施";跟随;使用PHP和Mysql的用户特性,php,mysql,web-applications,memcached,Php,Mysql,Web Applications,Memcached,问题:我在一种电子商务平台上工作,该平台有卖家和买家。现在,在我的情况下,卖家也可以是买家,即每个用户都可以买卖。 因此,我有一个名为users的表。现在我想实现一个follow vendor/user功能,用户可以单击follow,然后在他的帐户下看到该供应商列出的所有商品(直到他取消follow)。 现在,我的传统方法是使用一个表,该表有一个键和两列来存储跟随者和后面的例如: |id | userId | vendorId因此当用户继续跟踪其他人时,它将水平移动。但是如果我有一个用户跟踪许多
因此,我有一个名为users的表。现在我想实现一个follow vendor/user功能,用户可以单击follow,然后在他的帐户下看到该供应商列出的所有商品(直到他取消follow)。
现在,我的传统方法是使用一个表,该表有一个键和两列来存储跟随者和后面的例如:
|id | userId | vendorId
因此当用户继续跟踪其他人时,它将水平移动。但是如果我有一个用户跟踪许多人(比如说100),我的查询可能需要很多时间为每个用户选择100条记录。
问题:如何实现以下机制?有没有比这更好的方法?我正在使用PHP和Mysql Reasearch:我试着了解facebook和Pinterest是如何处理的,但这似乎太大了,我现在无法了解,因为我不希望马上有那么多用户。我是否需要使用memcache来提高性能并避免重复查询?我是否可以使用与Mysql并行的文档数据库 我想要一个简单但功能强大的实现,如果我的用户群逐渐增长到几千,它将可以扩展
任何帮助或见解都会非常有用。因为,根据我对该场景的理解,用户可能会跟随许多供应商,而供应商可能有许多追随者,这构成了许多关系,因此在数据库模式中实现这一点的唯一标准化方法应该是使用链接表,正如您所描述的那样
至于性能方面的考虑,我不会太担心它,因为它可以在userId和vendorId上建立索引,查询应该可以 根据我对该场景的理解,一个用户可能跟随多个供应商,而一个供应商可能有多个跟随者,这构成了一种多方面的关系,因此在数据库模式中实现这一点的唯一标准化方法应该是使用链接表,正如您所描述的那样
至于性能方面的考虑,我不会太担心它,因为它可以在userId和vendorId上建立索引,查询应该可以 连接表可能是最好的方法,但仍在很大程度上取决于您的选择
- 使用替换键id上的键聚集的表可以加快添加新记录的速度
- 带有键(userId,vendorId)的表clustered将使您查找某个用户跟踪的供应商的查询更快
- 使用键(vendorId、userId)聚集的表将使查询更快地查找遵循某个供应商的用户
- 使用替换键id上的键聚集的表可以加快添加新记录的速度
- 带有键(userId,vendorId)的表clustered将使您查找某个用户跟踪的供应商的查询更快
- 使用键(vendorId、userId)聚集的表将使查询更快地查找遵循某个供应商的用户