存储大量信息时哪条路由是mysql数据库设置的更好选择?

时间:2011-01-14 19:52:48

标签: mysql performance

我正在使用PHP和MySQL,我只是想知道哪条路线会对性能更好,数据库会不断增长,但速度相对较慢,但对于每位员工,我必须存储相当数量的信息,例如:

id
name
address
phone
email
coworkers
pay_rate
notes
tasks
completed_tasks

所以我想知道哪个更适合我的数据库设置?

我应该为每个员工创建一个新表,还是应该创建每个表,并相应地使用id号链接信息。

2 个答案:

答案 0 :(得分:5)

这些应该是表格

EMPLOYEES
  id
  name
  address
  phone
  email
  pay_rate
COWORKERS (this is a link table, tells relationship among employees)
  EMPLOYEE.ID (FK)
  EMPLOYEE.ID (FK)
NOTES
  notes_id
  notes
  EMPLOYEE.id (FK)
TASKS
  task_id
  task-details
  completed (int or bool)
  EMPLOYEE.id (FK)

不要为每位员工创建新表。不建议..搜索,过滤将很困难。你应该组织数据,记住它们在映射方面是如何相互关联的,例如: employee set映射到以一种方式设置的注释。

另外,如果db开始溢出,你不应该想太多。如果到了那个时候,你必须拥有数十亿行。然后你可能会想到一种安排数据的技巧。

答案 1 :(得分:3)

我肯定会做后者。您不需要在数据库中扩散表,只需为每个新员工向employee表添加一条新记录,并在其他表中跟踪一对多信息,该表使用employeeId字段进行索引(你想要制作一个外键。)

您希望确保您的员工表仅包含员工信息,而不是“同事”之类的内容。使用多个表来跟踪具有不同含义/目的/关系的数据集。关系数据库ftw。