将HTML内容保存到数据库是个好主意吗?

时间:2018-12-14 02:49:44

标签: html angular firebase firebase-realtime-database crud

我正在Angular 7中创建一个博客应用程序项目。使用firebase云功能作为后端,并通过使用Angular-CKEditor组件将html内容保存到firebase中来进行CRUD操作。

在Firebase中看起来像这样

content: "<p>Sample Blog Post</p><img src="someLink">"

然后在页面中呈现该字符串

<div [innerHTML]="content"></div>

我认为这种方法称为WYSIWYG(所见即所得),效果很好,但我觉得这不是有效的方法。

我想拥有一个博客网站,上面只有博客文章,没有其他功能。对于我的情况,这种方法有什么问题吗?如果有问题,您能推荐其他解决方案吗?

谢谢。

3 个答案:

答案 0 :(得分:5)

  1. 将HTML保存到数据库中的方法绝对没有错。

    事实上,这就是Wordpress的工作方式。

  2. 仅供参考,“所见即所得(所见即所得)”通常适用于诸如编辑器之类的东西:

  

https://en.wikipedia.org/wiki/WYSIWYG

     

WYSIWYG(WYSIWYG(/ ˈwɪziwɪɡ / WIZ-ee-wig)[1]的首字母缩写为“所见即所得”   您得到什么。”在计算中,所见即所得编辑器是一个系统,其中   内容(文本和图形)可以以类似于以下形式的形式进行编辑   打印或显示为成品时的外观,[2]   例如打印的文档,网页或幻灯片演示文稿。

答案 1 :(得分:2)

对于一个简单的博客网站,以这种方式保存内容听起来很自然。

HTML标记确实是您自己进行编程的最简单方法。 (另一种方法是markdown,您已经在此站点上使用了它。这也相当简单,但是仍然需要一个附加库,并且markdown文本仍存储在数据库中,因此您并未真正保存任何编程步骤。)

为了安全起见,我建议您检查平台的某些功能,以便验证HTML标记,并删除无效的标记。 PHP手册中有一些很好的例子:

答案 2 :(得分:1)

如果您使用实时数据库,那么使用firestore数据库会很糟糕,它将解决问题。

很少有解释如何根据网络上多少mb用于获取和存储数据来计算成本实时数据库的工作方式。 Firestore将注册对数据库的读写操作。

如果要使用它,可以将其作为字符串存储在Firestore中,它将使用一个写入操作。不要发送任何信件,因为这将使用大量写操作。如果您想这样做,我想解释一下如何做。

混合版本:

  • 实时数据库,用于存储键入的每个字母并对其进行更新;
  • firestore将使用newID创建文档;
  • 也在实时数据库中使用此newID来存储点1;
  • 要获取并存储html,请使用firestore编辑并记录编辑,请使用实时数据库。

最后,这也是我使用的混合版本,我可以使用它们提供的免费服务存储大量数据。