我正在使用PHP和MySQL,我只是想知道哪条路线会对性能更好,数据库会不断增长,但速度相对较慢,但对于每位员工,我必须存储相当数量的信息,例如:
id
name
address
phone
email
coworkers
pay_rate
notes
tasks
completed_tasks
所以我想知道哪个更适合我的数据库设置?
我应该为每个员工创建一个新表,还是应该创建每个表,并相应地使用id号链接信息。
答案 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。