Mysql数据库设计建议

时间:2012-02-09 15:19:16

标签: mysql

我正在尝试开发项目/员工/小时应用程序并需要数据库设计。我有一段时间没有这样做,所以我正在寻求好的建议。

基本上,该应用程序用于跟踪员工在项目上工作的小时数。员工必须每天登录系统,将他们花费的时间用于他们所从事的项目。到本周末,他们提交时间表并显示他们在每个项目上工作的总时数。

例如,员工A在2/11/12项目A上工作3小时,员工B在项目A上工作2小时,在项目B上工作1小时于2/9/12。经理可以看到2名员工在项目A上花了5个小时,在项目B上花了1个小时。管理员还可以看到员工B在所有项目上花了多少小时(A和B)。我想到的数据库表是

EMPLOYEES
id/name/password/manager_privi

PROJECTS
id/project_name/client/hours/date

HOURS
employee_id/project_id/date

这足以满足我的需求吗?谢谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我对你在问题中指定的小时和日期列感到有点困惑,所以我将使用更具体的名称。这就是我的看法。

PK在引号之间

CLIENTS("id", name)

它被引用并且遗失了:)

EMPLOYEES("id", name, password, manager_privi)

不确定manager_privi是什么......可能是员工的经理吗?

PROJECTS("id", project_name, client_id, start_date, end_date)

将日期分成两部分,以便不与工作日期混合

HOURS("employee_id, project_id, worked_date", hours)

请注意,它是复合键。您可能还需要在project_id和working_date上创建索引以加快速度,但这与它的设计无关 请注意,员工在同一项目的同一日期不能有2条记录。在这种情况下,如果员工尝试为同一日期和项目添加更多小时,则必须更新小时数

希望这有帮助。