2013-05-20 45 views
-1

我有一个数据库可以记录哪些用户应用过程中存储阵列到数据库

的申请表这样

id post_id user_id 
1 3 56 
2 2 33 
3 3 78 
4 3 99 

但我想改变用户USER_ID成一个字符串,并爆发成阵列。 因此在数据库中有许多行,一个post_id只有一行。

id post_id user_id 
1 3 56,78.99 
2 2 33 

比我使用和array_diff删除或更新USER_ID

和内爆回字符串,并将其更新到MySQL。

所以1篇文章只占用1行而不是数百行。这很好吗?

+0

甚至不考虑它。试图去绿色,并保存你的硬盘空间?尝试稍后获取您的数据 – Drew

+0

这是错误的思维方式。使用where子句找到您感兴趣的用户或在哪里() – Robert

+0

以前曾被问过百次不同颜色。如果你真的问自己,做一些研究。 - 请参阅右侧的相关栏目。 – hakre

回答

9

不,不是。它很难让查询数据库。尝试制定一个查询,查找用户56的所有帖子,查看我的意思。

保持您的数据库normalized它已经是。

  • 也就是说,除非你有一个非规范化的很好理由。(见@hakre's comment.
+0

因此,如果我有7千个帖子,每个帖子都有300个ppl申请,那么将会变成7000x300行,这会减慢查询吗? – user2178521

+0

如果你设置索引是正确的,不是真的。 – bwoebi

+0

@user如果您的数据库正确*索引*,请不要使用。 – deceze

1

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