一个巨大的桌子或多个小桌子,效率/良好实践

时间:2013-12-04 08:31:54

标签: mysql database database-design

我是计算机科学与工程专业的学生。我没有参加任何关于数据库设计的课程,所以如果这是一个基本问题我会道歉。我也是这个网站的新手,所以如果发布这个问题的话,我很抱歉。

我有一个看起来像这样的表:

+--------+--------+------------+-------------+------+----------+--------+
| userID | typeID | categoryID | description | date | budgeted | actual |
+--------+--------+------------+-------------+------+----------+--------+

问题:将每个用户的交易存储到这个巨大的表中是否有效,或者我应该制作更小的交易表,每个用户一个表。如果是后来我应该怎么做呢?我能想到的唯一方法是在创建用户时动态命名每个表,但我读过这不是一个好习惯

1 个答案:

答案 0 :(得分:2)

是的,将它们存储在一个表中是有效的。

如果它变大(例如10M行),你可以开始考虑partitioning

如果数据是随时间累积的(客户订单),则分区通常按日期(月,年......)而不是用户完成。