【发布时间】:2014-03-24 09:41:04
【问题描述】:
如果我想创建一个包含订阅者的数据库(想想 YouTube),我的想法是有一个包含用户信息(如用户 ID、电子邮件等)的表。然后是另一个包含 2 列的表(subscriptIon 表):一个用于用户 ID 和一个用于新订阅者的用户 ID。
因此,如果我的用户 ID 是 101 并且用户 312 订阅了我,我的订阅表将更新为包含第 1 列中的 101 和第 2 列中的 312 的新行。
我的问题是,每次 101 获得新订阅者时,都会将他们的 id 添加到订阅表中,这意味着我无法真正为订阅表设置主键,因为每个用户 id 可以多次出现他们的订阅者和主键需要一个唯一的值。
另外,如果有很多订阅正在进行,搜索所有 101 的关注者会不会很慢,因为每次 101 排在第一个时都必须搜索并检查所有行列并检查第二列中的用户 ID(101 的订阅者)?
我的问题有更优化的解决方案吗?
谢谢!
【问题讨论】: