Mysql数据库设计建议

问题描述 投票:0回答:1

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

基本上,该应用程序是为了跟踪员工在项目上工作了多少小时。员工每天必须登录系统来记录他们在项目上花费的时间。到周末时,他们会提交时间表并显示他们在每个项目上工作的总时间。

例如,员工A于2012年2月11日在项目A上工作3小时,员工B于2012年2月9日在项目A上工作2小时,在项目B上工作1小时。经理登录后可以看到这 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

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

mysql database-design
1个回答
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和work_date上创建索引以加快速度,但这与其设计无关 请注意,一名员工不能在同一项目的同一日期拥有 2 条记录。在这种情况下,如果员工尝试为同一日期和项目添加更多小时数,您将必须更新小时数

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.