在Stackoverflow上,我发现了有关将BBCode或HTML存储到数据库中的问题,但是如何存储它们呢?例如,我将使用两列创建posts
数据库表:body_bbcode
& body_html
。
在body_bbcode
我会存储用户(论坛成员)提交的原始帖子,而body_html
我会存储该帖子的已解析(HTML)版本。
因此,为了显示论坛帖子,我会使用body_html
,但是要编辑&引用(回复引用)我会使用body_bbcode
。
我之所以这样做是因为解析器使用的是正则表达式而没有body_html
它需要为每个主题页面转换至少 15 论坛帖子。如果我错了,请纠正我,但这会导致性能问题吗?
另一方面,我没有看到有人这样做,所以我想知道这种方法的缺点是什么,除了在数据库中占用更多空间?
另外,我正在考虑添加一个新列,我会在其中存储纯文本版本以供搜索,以便不对标记本身进行搜索(例如body_text
)。
答案 0 :(得分:0)
我想这样做的原因是因为解析器使用的是正则表达式而没有body_html,它需要为每个主题页面转换至少15个论坛帖子。如果我错了,请纠正我,但这会导致性能问题吗?
精心设计的bbcode正则表达式不会以任何有意义的方式阻碍性能。
不要创建"重复" bbcode文本和html文本的列。
您使用建议的方法遇到的一个主要问题是您将不可避免地更改您的HTML代码。 (例如,在html链接中添加一个类,更改youtube嵌入的iframe维度等等)然后,您仍然试图更新html列中的数据,这会产生问题。