我的网站上有不同的内容类型。 F.E. - 文章,问题,帖子 我看到两种存储评论的方式。
1)为每个内容类型创建表格,如articles_comments,post_comments等。
2)创建一个包含字段parent_field和parent_id的表。在'parent_field'中保存smth,如articles_id或posts_id。所以
explode('_', $parent_field);
我可以收到
的父表名和字段名select "... FROM $table WHERE $field = $parent_id"
第二种方式似乎很灵活,但首先更容易。
所以,问题是:如果每天100 + k主机,哪种方式更好?
答案 0 :(得分:1)
仅用于评论的一个表
id, caption, body, ...
一个关系表,用于将父关系存储到注释
comment_id (int),
parent_id (int),
parent_type (enum, set, or int BUT not varchar)
// build index
这一点,您可以轻松地将注释标记给多个父母(如果您愿意),
并且还可以轻松地INNER JOIN
来获取属于父母的评论
另一个好处,
例如,如果你想获得所有文章,问题和帖子的大多数评论,
在你的方法中,
你需要三个INNER JOIN + GROUP BY,
根据我的建议,您只需要单个查询
最重要的是,
关系表能够处理大量的记录
因为它只存储整数(较小的索引)