Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 新闻提要数据库设计效率_Php_Json_Performance_Feed_Scalable - Fatal编程技术网

Php 新闻提要数据库设计效率

Php 新闻提要数据库设计效率,php,json,performance,feed,scalable,Php,Json,Performance,Feed,Scalable,大家好,我以前也见过类似的问题,没有结论性的或经过检验的答案 我正在使用PHP/MySQL设计一个新闻提要系统,类似于facebook。鉴于此表可能会变得相当大,任何低效率都可能导致严重的瓶颈 通知示例: (粗体项目为链接对象) 用户A和用户B评论了用户C的新专辑 用户A向[他/她的]车库添加了一辆新的车辆 最初,我对Obj1:Type1 | Obj2:Type2 |等使用过多的列来实现这一点 它可以工作,但我担心它的可伸缩性不够,现在我正在考虑对象序列化 例如,我的新数据库设置如下: News

大家好,我以前也见过类似的问题,没有结论性的或经过检验的答案

我正在使用PHP/MySQL设计一个新闻提要系统,类似于facebook。鉴于此表可能会变得相当大,任何低效率都可能导致严重的瓶颈

通知示例: (粗体项目为链接对象)

用户A用户B评论了用户C的新专辑

用户A向[他/她的]车库添加了一辆新的车辆

最初,我对Obj1:Type1 | Obj2:Type2 |等使用过多的列来实现这一点

它可以工作,但我担心它的可伸缩性不够,现在我正在考虑对象序列化

例如,我的新数据库设置如下:

News_ID  |  User_ID  |                 News_Desc            |   Timestamp

  2643         904     {User904} and {User890} commented on     SomeTimestamp
                       {User222}'s new {Album724}.
{中的任何内容都表示将使用JSON序列化的数据

这是一种明智(高效/可扩展)的前进方式吗


使用正则表达式将序列化数据与字符串的其余部分分离会很困难吗?

如果User890删除他/她的注释,会发生什么情况?我认为您需要更原子化—可能会使用actioner(User890)存储操作类型(注释),然后使用大量缓存动态生成实际故事。如果您将站点扩展到多个市场/受众,这也有助于解决翻译问题。

这一点非常好。这意味着我还应该存储action元素的ID和TypeID,例如,我可以从“delete_comment()”中删除提要条目功能。我从来没有考虑过翻译,缓存会使我的数据库大小保持最小。我认为反规范化在这里会更有效。如果删除评论真的重要吗?如果它只是一个新闻提要,那么它只是真正的静态数据,我想。