Reddit 的联合创始人介绍了他们在扩展到数百万用户时遇到的问题。此处提供了摘要。
令我惊讶的是第 3 点:
相反,他们保留了一个事物表和一个数据表。Reddit 中的一切都是事物:用户、链接、评论、subreddits、奖项等。事物保持共同的属性,如赞成/反对票、类型和创建日期。Data 表包含三列:事物 ID、键、值。每个属性都有一行。标题、网址、作者、垃圾邮件投票等有一行。当他们添加新功能时,他们不必再担心数据库了。他们不必为新事物添加新表或担心升级。
这对我来说似乎是一个糟糕的想法,但它似乎对 Reddit 来说已经奏效了。不过,总的来说这是个好主意吗?或者是 Reddit 的一个特性恰好为他们解决了问题?