MySQL数据库中的HTML——最佳实践

MySQL数据库中的HTML——最佳实践,html,mysql,Html,Mysql,我开始创建一个系统,在这个系统中,我(作为目前唯一的用户)将加载一个动态创建的PHP页面,其中包含一个。然后,我将抓取该的HTML,并将其保存在网站的一个单独区域中显示给其他用户 我的问题是:对于这类事情,有哪些最佳实践可以遵循?在MySQL中将HTML保存为文本还是长文本?斑点?甚至可以将此数据保存为.txt文件,该文件使用PHPinclude()将其包含到向用户显示的文件中 对于这类事情,我真的不确定最好的解决方法,因此,问题层出不穷。我也不太熟悉创建数据库,因此,我不了解它们的优缺点。似乎

我开始创建一个系统,在这个系统中,我(作为目前唯一的用户)将加载一个动态创建的PHP页面,其中包含一个
。然后,我将抓取该
的HTML,并将其保存在网站的一个单独区域中显示给其他用户

我的问题是:对于这类事情,有哪些最佳实践可以遵循?在MySQL中将HTML保存为文本还是长文本?斑点?甚至可以将此数据保存为.txt文件,该文件使用PHP
include()
将其包含到向用户显示的文件中

对于这类事情,我真的不确定最好的解决方法,因此,问题层出不穷。我也不太熟悉创建数据库,因此,我不了解它们的优缺点。似乎使用MySQL数据库来实现这一目标是可行的,但我还没有结婚

注#1:HTML必须完整保存。所以类似于
的东西让我们用蓝色来做这件事。
最终不能变成
让我们用蓝色来做这件事。


注意#2:我保存的表每次都随机生成(包括行/列的数量)。因此,我需要表中的所有数据,包括所有

我不知道您计划存储多少表,但如果您不需要进行排序或筛选等复杂操作,您可以将它们存储在文件夹结构中的文件中,这将比MySQL消耗更少的资源,并且整个文件都被保留下来

如果需要许多表,那么不要存储HTML表,而是存储一个json,其信息如下:

[
    [
    { 
      "content": "Let's use blue for this.",
      "color": "blue"
    },
    { 
      "content": "Let's use red for this.",
      "color": "red"
    }
    ],
    [
     { 
      "content": "Another row.",
      "color": "blue"
    },
     { 
      "content": "Another row.",
      "color": "red"
    }
  ]
]
然后在你调用它时重建它。将使用更少的空间,传输速度更快


如果您的表是固定格式的,那么用您需要的字段创建一个表。

我建议您将表看作一种对象。SQL表用于存储关系数据。因此,为什么不以这种方式表示表格?下面是如何在SQL中存储人员表数据的一个非常基本的示例

<table>
<thead>
    <th>People ID</th>
    <th>First Name</th>
    <th>Last Name</th>
</thead>
<tbody>
    <tr>
        <td>1</td>
        <td>John</td>
        <td>Doe</td>
    </tr>
    <tr>
        <td>2</td>
        <td>Jane</td>
        <td>Doe</td>
    </tr>
</tbody>

从这里检索到的B64编码:

根据此规则进行直播:PHP用于格式化;MySQL用于数据。

PHP用于构建HTML。MySQL作为PHP可以构建HTML的数据的持久存储非常有用

我已经用Apache+PHP+MySQL构建了几个系统。每个页面都是PHP生成的HTML。我不在MySQL中存储
,只存储数据

我的一些页面执行一个
选择
;许多页面执行一打或更多的操作。表演还不错。我使用PHP子例程构建
s
。我根据数据构造样式变体


让我们使用蓝色,因为
可能在某个数据库表中;PHP代码会在其周围添加
标记。

有人会想出PHP来正确执行此操作,但这里有一个想法

  • 学习数据库是一个单独的练习,不应该与学习其他任何东西混合在一起。把MySQL排除在外。如果你想回去重做这个项目,把它作为一个学习练习,在你花了一些时间学习基础知识之后,继续吧
  • 您要做的是将表生成为一个单独的.php片段,然后以一个唯一的名称保存到磁盘上,您可以使用该名称稍后再次查找它(可能是一个日期/时间,可能是一个不断增加的数字,可能是另一种方式)。保存后,您可以将其包括到您的页面以及要包括它的其他页面中。获得这个独特的名字可能是一个挑战,但这是一个不同的问题(如果你环顾四周,可能已经在某个地方找到了答案)
  • 如果您对.php了解得足够多,那么剩下的应该是不言自明的。如果你没有,那么现在是学习的好时机。如果您还有其他问题,您可以搜索stack overflow或google以获得答案。很可能,答案就在那里
  • 因为我知道数据库,可能会有一个有趣的讨论,其他海报正试图与您讨论如何存储数据。然而,只有当你理解了我们想要谈论的内容后,这种讨论才会对你真正有用。此外,我敢打赌它至少已经被问过一次了

  • 所以,尝试一下这个计划,然后回来为未来的读者发布你是如何做到的。愉快的编码。

    MySQL和HTML文件都可以工作。您的选择应该取决于数据的简单程度和存储量

    一些考虑:

  • 速度。HTML文件和
    include()
    方法将会更快。文件系统是最快、最简单的数据持久化形式

  • 水平可扩展性。如果采用文件系统方法,则或多或少会与该计算机上的磁盘绑定。使用单独的数据库引擎,您可以选择在网络上的单独群集服务器上运行数据库

  • 元数据。您是否需要存储创建时间、哪个用户创建了HTML、其他用户查看了多少次?如果是这样,您可能只有一个现实的选择——一个“合适的”数据库。这可以是MySQL,也可以是NoSQL解决方案之一

  • 数据消耗。您是否向其他用户显示整个表?还是显示它的选定部分?甚至可能对不同的用户使用不同的部件?这会影响存储数据的方式—将整个表作为一个实体,或将每行作为一个实体,或每个单元格

  • 文本还是长文本?当然,只有使用SQL时才适用。回答这个问题的唯一方法是知道每个“HTML片段”需要存储多少字节。请注意,字符编码也会影响存储的字节数。请参阅:

    function utf8_to_b64( str ) { return window.btoa(unescape(encodeURIComponent( str ))); } function b64_to_utf8( str ) { return decodeURIComponent(escape(window.atob( str ))); } var my_table = $('#table').html(); // Store this var encrypted_string = utf8_to_b64(my_table); // Decode as so var table = b64_to_utf8(encrypted_string);