Javascript 当我需要呈现HTML和“标记”时,在数据库中存储支持标记的字段的最佳方式是什么;“简单文本”;意见?
我有一个数据库,我有一个网站前端。我的前端有一个字段,现在是文本,但我没有。我试图找出正确的方法来存储在我的数据库中,因为我有各种需要支持的视图(PDF报告、网页、excel文件等) 我担心的是,由于这些视图中的一些不支持HTML,我不想只拥有该字段的HTML版本 我应该存储2个副本(仅一个文本和一个HTML?),还是应该存储HTML并在渲染到Excel时动态尝试删除它们的HTML标记 我需要找出存储在数据库中的正确格式,以便能够同时呈现以下两种格式:Javascript 当我需要呈现HTML和“标记”时,在数据库中存储支持标记的字段的最佳方式是什么;“简单文本”;意见?,javascript,asp.net-mvc,database-design,markdown,Javascript,Asp.net Mvc,Database Design,Markdown,我有一个数据库,我有一个网站前端。我的前端有一个字段,现在是文本,但我没有。我试图找出正确的方法来存储在我的数据库中,因为我有各种需要支持的视图(PDF报告、网页、excel文件等) 我担心的是,由于这些视图中的一些不支持HTML,我不想只拥有该字段的HTML版本 我应该存储2个副本(仅一个文本和一个HTML?),还是应该存储HTML并在渲染到Excel时动态尝试删除它们的HTML标记 我需要找出存储在数据库中的正确格式,以便能够同时呈现以下两种格式: HTML,以及 常规文本(无标记或HTM
- HTML,以及
- 常规文本(无标记或HTML语法)
任何建议都将不胜感激,因为我不想走错路。我的观点是,我不想在Excel输出中显示任何HTML标记或标记语法。您需要以规范格式存储数据。也就是说,在数据库中使用一种真正的格式。听起来这种格式应该是包含标记的文本列。这回答了您问题中的数据库设计部分
然后,根据需要导出的格式,应采用规范格式并将其转换为所需的输出格式。这可能只是输出标记文本,或者通过某种解析器运行它来删除标记或将其转换为HTML。我建议将其存储为HTML格式,因为在这种情况下,HTML是最丰富的格式,并在获取其他格式(如PDF、Latex或其他格式)的数据时删除标记。在下面的问题中,您将找到一种轻松删除标记的方法 在我看来,将数据(原始和降级)存储在两个单独的字段中是浪费空间,但也是一个完整性问题,因为理论上,其中一个字段可以在不更改第二个字段的情况下进行修改
祝你好运 大多数人似乎都在说,只需将数据作为HTML存储在数据库中,然后将其处理为纯文本。我认为这有一些不利之处:
- 如果可以接受,你就完了,呜呜李>
- 如果不是,则缓存派生数据
但无论您做什么,都要确保缓存永远不会“过时”——即,当原始数据发生更改时,缓存中的派生数据必须重新生成,或者至少以某种方式标记为“脏”。一种方法是通过触发器。如果存储不是问题,我想我会做的是存储规范版本,但从中自动生成,持久化,计算字段,任何其他可能需要的版本。您希望字段被持久化,因为每次需要数据时进行转换是毫无意义的。您希望计算它们,因为您不希望它们与规范版本不同步
本质上,这是将数据库用作其他版本的缓存,但缓存可保证数据完整性。您只需存储标记,并在需要时进行渲染。如何将标记本身渲染为常规文本?标记已经是常规文本。您的意思是要删除特定于标记的标记吗?也就是说,
*foo*
将变成foo
?我打赌有一个图书馆可以做到这一点。对我来说,这似乎是一个毫无意义的事业。当然,降价的主要优势在于它的可读性