gpt4 book ai didi

javascript - 只是将 XML/JSON 存储在数据库中以用于数据库中未使用的数据?

转载 作者:行者123 更新时间:2023-11-30 05:42:58 25 4
gpt4 key购买 nike

我有一个小型数据库,里面有一些基本的用户数据(uid、用户名、电子邮件、密码等),各种 SQL 查询和 PHP 使用这些数据,所以有一个完整的表结构很有意义。

然而,一项新功能将添加一些新表,其中每个用户将“拥有”这些表中的一些行(比如每个用户 100KB 的数据)。然而,从数据库的 Angular 来看,我真正想要做的是为一个用户设置所有数据,或者为一个用户获取所有数据。

数据将只能在客户端使用 JavaScript 查看和编辑。当然,JavaScript 不能直接运行 SQL 查询,在数据被编辑并作为 HTTP POST 提交后,通过跟踪用户所做的任何更改,尝试在 PHP 中组合正确的 UPDATE、INSERT 和 DELETE 查询集该 session 有些复杂。

相反,我的想法是在数据库中为每个用户创建一个 TEXT 字段,并在其中存储 JSON 或 XML。然后可以只给 JavaScript 填充 HTML 表,在用户完成对该表的编辑后,JavaScript 只需要从 HTML 表单中收集所有数据并将其发布。然后 PHP 只需要运行一个 SQL 查询来覆盖现有数据。

虽然这看起来是最简单的方法,但它确实有点误用了 SQL 数据库。我还想知道,如果在第一种情况下由 PHP 生成初始编辑前表,而不是在文档加载后由 JS 生成,是否会更好?

最佳答案

对于像您这样的案例,使用文本字段存储数据是一种常见做法。但是,如果您决定执行此操作,请考虑以下问题:

  • 坚持固定格式。如果您将数据存储为纯文本,请注意数据库将不再使用其机制来确保数据完整性和格式统一。因此,如果您有几条给定格式的记录,然后更改它并添加更多新格式的记录,那些具有旧格式的记录将不再有效,除非您确保支持这两种格式。因此,您的数据格式应该足够成熟和一致。
  • 估计数据长度。您应该对数据文本的长度有一个很好的了解,以保证它适合您存储它的数据库列。一些数据库有问题无限数据类型列(如 TEXT),因此您应该非常了解您的数据库服务器以及部署配置。通常 MySQL 和 PostgreSQL 不会有问题,但根据我的经验,我在使用 Informix 时遇到过严重问题 - 所以您的数据库服务器很重要。
  • 不要依赖客户端代码。您提到要通过 javascript 创建数据。我建议至少将 JSON 提交到服务器并从中生成另一个 JSON 以存储在数据库中,或者以其他方式验证它。否则,如果您在添加自由格式的客户端数据时不采取措施,黑客可能会添加恶意内容,或执行数据库注入(inject),或以其他方式破坏您的应用程序。但是,如果数据完全在服务器上生成,则风险较小。

因此,总的来说,这在数据库开发方面并不是一个坏习惯,但如您所见,它提供了额外的注意事项。如果你把它们都弄清楚了(我不会假装把所有的都包括在我的列表中,只是我个人遇到过的最常见的),那么你会没事的。

关于javascript - 只是将 XML/JSON 存储在数据库中以用于数据库中未使用的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19707457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com