我想这个标题不是很有描述性,所以我会解释一下!我有一个名为 users_favs 的表,其中存储了有关用户喜欢的帖子、他喜欢的帖子以及评论的所有信息。那里的信息存储为关心的序列化数组/或JSON。
问题:什么更好?保持这样,或者为每个字段创建 4 个表,并且不以 serealized 版本存储,而是像 user_id => post_id 一样存储?我对第二种选择的看法是,一段时间后这个领域将是巨大的。此外,我需要进行 4 次查询(或使用 JOINS)才能从这些表中获取所有信息。
我想这个标题不是很有描述性,所以我会解释一下!我有一个名为 users_favs 的表,其中存储了有关用户喜欢的帖子、他喜欢的帖子以及评论的所有信息。那里的信息存储为关心的序列化数组/或JSON。
问题:什么更好?保持这样,或者为每个字段创建 4 个表,并且不以 serealized 版本存储,而是像 user_id => post_id 一样存储?我对第二种选择的看法是,一段时间后这个领域将是巨大的。此外,我需要进行 4 次查询(或使用 JOINS)才能从这些表中获取所有信息。
将其保存在 1 个表中意味着您只需要 1 个表访问权限和 0 个连接即可获取所有数据。在将其存储在 4 个表中时,当您需要 n 个信息字段时,您至少需要 1 个表访问权限和 n-1 个连接。您在查询结束时的结果集可能是相同的,因此通过网络发送的数据量与您的表结构无关。
我假设您将拥有 fav_categories 的数据而其他列为空的情况。对于 fav_posts、like_posts、like_comments 列也是如此。所以很有可能在每一行中,大部分时间只有三列有数据(id,user_id,任何一个rest)。如果我的假设是正确的并且用例也是正确的,那么我肯定会四张桌子。
要添加到上述内容,您始终可以选择是否要使阅读友好或写作友好。