gpt4 book ai didi

php - 在关系 DBMS(即 MySQL)中存储序列化数据

转载 作者:行者123 更新时间:2023-11-29 08:59:11 25 4
gpt4 key购买 nike

虽然我希望最终切换到更新、更轻和/或更快的 DBMS(例如名副其实的轻量级 SQLite 或基于文档的 Mongo,后者不会出现此问题),但我我目前坚持使用标准 MySQL 系统。虽然我意识到这个问题的任何答案都可能是一种观点,但我想知道如何将序列化数据(例如数组或 HashMap )存储在 MySQL [或其他基于关系的] 数据库的单列中。大多数数据访问将通过 PHP 执行,但我想以标准格式(即 JSON 或二进制 HashMap - 最好是后者)存储数据,而不是转储 PHP 数组的纯文本。原因是我可能会从 Python、编译的 C/C++ 应用程序或命令行执行一些数据查询。

谢谢。

最佳答案

预警:这仅是我的意见。

如果您计划通过存储数据以外的方式查询数据(例如从 PHP 存储、从 C/C++ 甚至命令行查询),我强烈建议您不要将整个数据结构存储在一列中。相反,我建议创建数据模型以更好地支持您的查询(例如,将 HashMap 存储为映射到 HashMap id 的一组名称/值对)。然后在代码中创建模型层来处理代码层和数据库层之间的转换。

当您需要将数据存储到数据库中时,从您的 PHP 代码中,只需调用模型层中相应的方法/函数,并传递 HashMap 即可。当您需要从数据库加载数据时,调用模型层中相应的方法/函数,传递 HashMap 的 ID(或任何相关标识符) - 并获取 HashMap 。

这样,除了使以后查询数据变得更加容易之外,如果/当您更改数据库引擎时,您所需要做的就是更新模型层中的一些方法/函数。

关于php - 在关系 DBMS(即 MySQL)中存储序列化数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9096045/

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