Mysql:如何正确存储数组中的信息

时间:2013-09-22 21:23:59

标签: php mysql arrays

我正在研究POST注册系统。只需记录发送到站点的每个发布请求以及用户发布的所有内容(换言之,$ _POST数组)。

我看到了两种方法:

正确的方法 - 为帖子信息设置一个单独的表registerPostInfo,其中数组的每个元素都将作为新记录插入。

错误的方法 - 在我的registerPost表格中创建一个额外的列,该列将保存json_encode()'d个数组。

我正在寻求建议,因为尽管它可能被认为是“错误”但老实说我认为第二种解决方案会更好,因为这张桌子像疯了似的被淹没了。我已经在本地服务器上的一个月测试期内自己创造了2000条记录,如果我要继续第一个解决方案,假设在post数组中平均有5个元素,这意味着将有10000个registerPostInfo表中的记录。想象一下,成千上万的人......我会很高兴能找到有关我的问题的有用信息,也可能是我没想到的第三种方式。

提前致谢!

1 个答案:

答案 0 :(得分:1)

取决于“记录”所有发布数据的实​​际目的是什么。如果您只是想将此作为一种日志,以便您可以稍后重新构建用户发布的内容,如果它变成恶意或不需要的,那么我会说将其存储为JSON或序列化为单个列是完全可以的;而如果你想在某些时候处理这​​些数据,甚至可能在其中搜索某些参数名称/值,那么最好将它存储为单个parameter_name | value记录,所有这些记录都由id绑定在一起单个POST请求。

因此,如果主要目的不是实际使用该数据,而是仅在必要时“分析”它,那么我将使用序列化数据。很容易通过发布时间或用户ID从数据库中选择它 - 然后可以通过脚本完成反序列化部分。您的二次使用,向用户显示他们创建了什么样的内容 - 以及您应该能够从实际拥有该内容的表中获取。