【问题标题】:How should i store data of News feed in database?我应该如何将新闻提要的数据存储在数据库中?
【发布时间】:2014-05-13 08:33:24
【问题描述】:

我想存储 news Feed 的数据。新闻提要包含图像、视频、音频、文本。如何将所有这些一起存储在数据库中?
我有桌子

post(postid , userid , post_content , post_time);

对于视频、音频和图像,我们为每个用户使用目录。因此,当他们上传视频、音频、图像时,这些将存储在他们的目录中。 但是如何将所有这些放在数据库中。 这样我们就可以将类应用于图像、文本等样式,我无法将所有这些组合在一起,以便可以将其作为内容存储在数据库中。

我有这样的想法

post(postid , userid , text_content , post_type , post_time);

post_image(id , postid , path);

post_video(id , postid , path );

post_audio(id, postid, path);

post_type 用于 image = 0 , video = 1 和 audio =2 假设用户只能发布其中一个 image 或 video 或 audio 。

News Feed 存储在数据库中是否是个好主意。任何帮助都将是可观的。

我正在使用 PHP、MYSQL、Apache。

【问题讨论】:

  • 只需将每个用户数据的位置存储在一个表中,并在需要时从数据库中获取它:/。确保使用 mysqli_real_escape_string(); 转义字符串;
  • 为什么人们投反对票,这不是一个好问题?或者这不是程序员的问题?投反对票的原因是什么?
  • 人们对您的问题投了反对票,因为您没有显示自己的任何代码,这有点像“做我的家庭作业”问题。你需要炫耀你已经尝试过什么,你想要达到什么,以及你被打动的地方。我可以看到您自己也在考虑这个问题,所以我正在帮助您,但是为了提高您的问题的质量,您可以并且应该添加您的代码:)
  • 顺便说一句:欢迎来到 Stackoverflow :) 这是一个 link,其中包含有关如何在 SO 上提出好的问题的大量信息,因此您将来不会被否决,您的问题将得到更多关注:)
  • 每个问题都不需要代码来显示你做了什么和你想要什么?我只需要建议和想法,不需要任何代码,也不是我的家庭作业。

标签: php mysql database feed


【解决方案1】:

这里有一个类似的问题here on SO,提供了更多信息和参考资料,以及如何在 MySQL 中保存图像和音频。

但不推荐

每个文件都有几 MB,因此您的 MySQL 数据库会变得非常大。

正如@ksealey 在 cmets 中提到的,您需要将已保存文件的路径存储在数据库中,这是 MySQL 数据库的最佳实践和常用方法。

您只需引用图像和音频的数据库条目,而不是硬编码文件的路径。

【讨论】:

  • 我应该只存储路径很好,但是如何在文本中找到包含图像或视频或音频的文本..
  • 您可以使用switch caseìf else 块来检查带有strpos() 的字符串。就像if (strpos($path, '.jpg')){ // it's an .jpg image } 等等
  • 如何单独存储数据,正如我在问题中解释的那样(更新)。
  • 这是一个想法,但您只能保存 3 种中的一种,但您肯定希望拥有包含视频和图像或类似内容的新闻源。您可以做的是在您的帖子表中添加一个字段,例如post_attachment_id,然后创建一个新表post_attachment,在其中保存pathpost_id。这是指具有一对多(post_attachment)关系的帖子
  • 那很好,我可以在 post_attachment 中再添加一个字段作为 post_type,它指的是附件的类型,这样我就可以轻松添加 CSS 和 JS 并将表 post 定义为 post(postid , userid , text_content , attachment, post_time);我已经使用附件来确定附件是否存在,这样我们就可以节省加入时间。
猜你喜欢
  • 2015-03-16
  • 1970-01-01
  • 2011-04-23
  • 2021-06-27
  • 1970-01-01
  • 1970-01-01
  • 2012-11-12
  • 1970-01-01
  • 2012-06-20
相关资源
最近更新 更多