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以获取建议!由于性能原因,去规范化实际上是有意义的,索引可能会妨碍您。没有对错之分,但你应该知道这两个概念以及如何度量,这样你就可以决定何时需要从一个概念切换到另一个概念。