如何在数据库中存储丰富的内容?

时间:2017-10-01 06:15:07

标签: mysql database markdown richtext

这个问题不是关于特定的数据库引擎,而是关于实际内容。

例如,前端使用某种WYSIWYG编辑器(例如CKEditor)。在编辑器中存储用户输入的所有内容很容易,但这可能会破坏设计(未关闭的标记)或添加安全问题(标记)。此外,可能有图像,我们不能简单地将它存储在同一个字段中。

我们可以使用降价来规避大多数设计/安全问题,但如何将文件/图像与文本一起存储?

我应该创建另一张桌子吗?

posts
   id
   text
post_images
    post_id
    image_id
    image_path

内部帖子文字有这样的内容

Hello, this is [image_id=22][/images/dgdgsdg.jpg] my image

还是有其他经过验证的解决方案?

所有大型社交网络都允许使用附加文件进行某种格式化,但是如何存储却没有头痛?

1 个答案:

答案 0 :(得分:0)

  

我们可以使用降价来规避大多数设计/安全问题

事实并非如此。 Markdown可以包含内联HTML,您仍然需要验证/清除生成的HTML。使用Web框架的清理程序功能。

通常您只是将图像存储在服务器上,HTML(或降价)包含图像路径。您还可以将文件名更改为整个文件的哈希值。同样,通常有一些插件可以为您处理此类事情(例如,对于Ruby on Rails,paperclip)。