Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数组存储到数据库中_Php_Mysql_Database - Fatal编程技术网

Php 将数组存储到数据库中

Php 将数组存储到数据库中,php,mysql,database,Php,Mysql,Database,我有一个数据库可以记录哪些用户申请课程 这个应用表是这样的 id post_id user_id 1 3 56 2 2 33 3 3 78 4 3 99 然而,我正在考虑将用户id更改为一个字符串并分解为数组。 所以在数据库中有许多行,一个post_id将只有一行 id post_id user_id 1 3 56,78.99 2 2 33 然后我使用array\u diff来删除或更新用户\u id 并将其内爆为string并更新为myS

我有一个数据库可以记录哪些用户申请课程

这个应用表是这样的

id  post_id user_id
1   3   56
2   2   33
3   3   78
4   3   99
然而,我正在考虑将用户id更改为一个字符串并分解为数组。 所以在数据库中有许多行,一个post_id将只有一行

id  post_id user_id
1   3   56,78.99
2   2   33
然后我使用array\u diff来删除或更新用户\u id

并将其内爆为string并更新为mySQL

因此,一个帖子只占用了一行,而不是数百行。这样做好吗

不,不是。这使得查询数据库非常困难。尝试制定一个查询,按用户
56
查找所有帖子,以了解我的意思

保持数据库的原有状态

  • 也就是说,除非你有很好的理由去规范化

    • 这不是一个好主意,数据库的设计目的是存储您首先描述的信息。如果您折叠记录,则几乎不会节省任何东西(存储空间通常很便宜),并且失去了对数据执行有用查询(性能和方便性)的能力

      想都别想。试着去环保,节省硬盘空间?试着以后再获取你的数据这是一种错误的思维方式。使用where子句查找您感兴趣的用户,或者以前以各种颜色询问过100次的where in()。如果你真的这样问自己,做些调查简短回答:不,你完全错了。您现有的表是更好的方法。查找。因此,如果我有7000篇文章,并且每篇文章都有300个ppl应用,这将成为7000x300行,这会减慢查询速度吗?如果您设置了正确的索引,则不会。如果您的数据库已正确索引,则用户不会。请确定thx以获取建议!由于性能原因,去规范化实际上是有意义的,索引可能会妨碍您。没有对错之分,但你应该知道这两个概念以及如何度量,这样你就可以决定何时需要从一个概念切换到另一个概念。