将整个网页保存到单个数据库字段

时间:2015-11-13 11:31:22

标签: php mysql symfony ckeditor

我在symfony2项目中使用内联CKEditor,当用户登录站点管理员帐户时,会向用户显示内联编辑器以更改页面内容,更改内容并保存更改后,整个页面将持久保存到数据库中的字段。

由于有太多的单独组件为每个组件分别设置各个行,我想将整个页面保存为一个整体。网页可能有大约36000个字符,

哪种字段类型最好?

有更好的方法吗?

内联编辑通常如何保存到服务器?

-Thanks

2 个答案:

答案 0 :(得分:3)

您不仅要在数据库中保存网页。

根据内容的数量,您可能需要更改列的数据类型。

我认为,目前您正在使用 TEXT ,您可以尝试 MEDIUMTEXT ,它可以存储最多16MB的数据或 LONGTEXT 最多4GB的数据。

但是你永远不应该存储在数据库中反复重复的静态HTML。基本缓存会有所帮助。

答案 1 :(得分:2)

(简化)惯例:

有一些重复的HTML块,例如标题,菜单,侧边栏,页脚等。这些块中没有一个被保存在数据库中。它们包含在模板文件中。

特定于页面的HTML块(页面内容)保存在数据库中。

例如,您可以创建以下基本结构:一个名为pages的表,其中包含以下列id, url, title, content,另一个表存储名为menus的表,其中可能包含以下列{{1 }}

当您显示页面时,首先从数据库中id, title, page_id获取记录,然后使用模板呈现该信息。

该模板将包含标题,菜单,侧边栏,内容,页脚的其他模板。

菜单模板将收到所有菜单项(以及指向它们的链接)的列表。内容模板将从pages呈现HTML。所有其他模板都是固定的HTML,没有任何动态。