数据库中有很多记录

时间:2011-02-28 23:08:24

标签: database symfony1

我正在筹划一个项目网站,我将拥有大约1万名用户。在服务中将约有5千个静态产品存储在一个表中。每个用户将至少有1000种产品(最多5千)。现在我有一个问题:如何设计关系模型?用户表当然可以。

我会保留:10,000(用户)* 1,000(产品)= 10,000,000条记录。 我有一个想法:创建(例如)100个表并将用户的每个产品分配给一个表。 用户每天将更新大约50条记录。

我想使用symfony 1.4,doctrine 1.x和MySQL / PostgreSQL。这是个好主意?

2 个答案:

答案 0 :(得分:4)

100个具有相同定义的表格?抱歉,这是一个糟糕的主意。如今的数据库足以处理数百万行表。

答案 1 :(得分:1)

我不知道框架,但MySQL或PostgreSQL应该能够毫无问题地处理它。但是,我建议不要为每个用户分别设置一个表,除非您为用户提供直接数据库访问(即:不通过您只配置了要显示的特定输出的网页)并为其分配自己的连接凭据,他们无法查看其他用户的产品信息。

对于MySQL来说,我认为一个更好的想法是,只需拥有一些InnoDB表,并将搜索/编辑的结果限制为记录,其用户标识与当前登录的ID相匹配。拥有一堆额外的表将浪费大量空间(IIRC,每个InnoDB表的最小大小为10 MB所需的空间使用量),并且您的应用程序最终将受到64TB最大限制,仅限于您将创建的各个用户表。

相关问题