保存用户交互而不会使数据库过载

时间:2014-10-07 12:16:46

标签: php database

我目前正在研究一个电子学习系统的概念,并想知道像facebook这样的社交网络如何保存用户输入(如Thumps Up,Comments等)。或者StackOverflow如何保存问题?在我的具体情况下,我需要保存运动结果,用户登录等交互。你有一些提示吗?

提前致谢,

菲利普

2 个答案:

答案 0 :(得分:1)

您可以创建类似用户的关系表--->注释,竖起大拇指等。问题是当您检索数据应用程序或数据库必须通过数据库查找时。

所以你可以(评论,竖起大拇指等)保存为JSON对象。

“发布”表并考虑此表中的以下列。

ID:1 发布:XYZ 评论:{[“user”:123,“comment”:“test comment”]} 大拇指:{ “总”:3,[ “用户”:13, “大拇指”:真]}

因此,您可以有效地检索单个SELECT查询这些数据。保存时,必须转换为JSON对象。

您也可以尝试使用NoSQL数据库。

答案 1 :(得分:1)

正如Damith所说,你应该看看NoSQL。

如果您沿着这条路走下去,可以看看事件采购

的想法
  

那么,什么是事件采购?事件采购是另一个转变   范式,一开始就把我吹走了。使用常规数据库时   我们通常在数据库中创建一条记录然后执行一些记录   在同一记录上更新,阅读几次,直到最终   被删除。基本上我们总是保存最新的快照   数据。如果你退后一步,你会看到我们实际上是   一直删除数据。每当您执行删除或更新时   在您的数据库中,您正在删除数据。想一想,   你真的想删除数据吗?几个月后你怎么知道的?   时间这个数据不重要吗?

阅读= http://www.kenneth-truyers.net/2013/12/05/introduction-to-domain-driven-design-cqrs-and-event-sourcing/