在mysql中存储完整的html页面

时间:2015-01-05 15:13:47

标签: html mysql

我试图在MySQL数据库中存储完整的HTML页面。

这是我的数据库架构:

enter image description here

我认为这个SQL查询必须完成这项工作:

SELECT PC.id, T.name AS tag, HT.name AS attr,
       HTV.content AS attr_val, PC.content, C.Count
FROM page_content AS PC
INNER JOIN page AS P ON PC.page = P.id
INNER JOIN html_tags AS T ON PC.tag = T.id
INNER JOIN html_tag_attr_val AS HTV ON PC.attr = HTV.id
INNER JOIN html_tag_attr AS HT ON HTV.attr = HT.id
LEFT JOIN (SELECT tag_parrent, COUNT(*) AS Count
           FROM page_content
           GROUP BY tag_parrent) C ON P.id = C.tag_parrent
WHERE P.name = 'index' AND PC.tag_parrent = 0

attr列为空时出错了 恩。我插入了没有属性的span标记。 这个查询什么也没给我。

1 个答案:

答案 0 :(得分:3)

我的假设是你已经进入HTML的这种极端分裂/存储,因为你想使用数据库工具以某种方式分析标签的使用?

我和Marc B在一起,数据库并不是解决这类问题的最好方法......

如果您觉得必须,那么您可能希望在存储它之前使用某种原始HTML 的预解析器/验证器,以确保html良好在将其存储到像这样的一组关系表之前形成并有效。这将大大减少角落案例错误。

但是就像Marc B说的那样,因为html最终只是文本,所以最好将它作为单个文本记录存储在你的dB中,然后使用一个程序在你想要进行分析时进行解析。 / p>