博客系统中的数据库设计

时间:2010-03-18 00:20:07

标签: mysql database database-design optimization performance

作为一项学习练习,我试图将自己设置为博客系统。

目标是编写一些可以让我创建多个博客的内容,比如blogger.com或wordpress.com,但是很简单。

我想问你,对于这种类型的脚本,您认为最佳的数据库设计是什么?

有一个大表,包含来自所有用户的所有博客的帖子(如friendfeed)更好还是为每个博客的帖子创建单独的表更好?

非常感谢您的帮助, 彼得。

2 个答案:

答案 0 :(得分:3)

您最有效的方法是创建一个正确规范化的数据库(作者,帖子,评论表),然后在您进行扩展时寻找处理性能问题的方法,而不是预先设计问题......那些问题可能永远不会实现。

通常,如果要将单个表拆分为多个表,则需要查看数据的查询方式并确定分区数据的最佳方法。可能是时间是更好的方式来对其进行分区,或者您希望按作者或博客网址进行分区。

总结 - 从传统的标准化设计开始,当遇到性能问题时,只会偏离该路径。

答案 1 :(得分:1)

这是一个很好的问题(+1)。

就可扩展性而言,显而易见的是,除非您的预算非常庞大,否则每个人的每个博客的一张表都不会飞。也许FriendFeed有能力将服务器场推到桌面上 - 但我有兴趣阅读你对它们的研究。

如果您只期望少量用户,那么请专注于设计并忽略可扩展性。

我想答案取决于您希望扩展项目的距离。