c# - 就数据库表设计、估算表提出建议

标签 c# mysql sql database-design relational-database

我是数据库设计的新手(虽然已经阅读了一些教程)。

在我的程序中,我需要存储时间估计的记录。 工作包的估算包括 36 个时间段(月)的估算小时数。

我的计划是有以下列:

  • id INTEGER(主键)
  • workpackageId INTEGER(外键)
  • competendId INTEGER(外键)
  • M36 SMALLINT 无符号
  • M35 SMALLINT 无符号
  • M34 SMALLINT UNSIGNED
  • .....
  • M1 SMALLINT UNSIGNED
  • 创建 DATETIME
  • 修改日期时间

M1到M36其实是对一个月时间的预估工作时间。 可在一个日历月内实现的工作包将仅在 M1 列中有估计。 至少需要 6 个日历月的工作包将在 M1-M6 列中进行估算。

我可能需要在其中获取更多数据,并为每个时间段分别添加 MIN (LIKELY) MAX 估计值。

我确信有更聪明的方法可以做到这一点,但我不知道如何...

如有任何建议,我们将不胜感激...

最好的问候//Claes

最佳答案

这就是我的方法

Table Jobs
JobID -- Don't just use ID
workpackageId 
competendId 
CreatedOn
ModifiedOn


Table TimePeriod
TimePeriodID
TimePeriodDesc -- this is your M1, M2, etc

Table Times
TimeID
JobID  -- fk to Jobs
TimePeriodID -- fk to TimePeriod
EstimateType -- Min, Max, etc
EstimateValue INT -- pop your estimate in here
CreatedOn  -- No modify, just use the most recent created for each to allow audit history

关于c# - 就数据库表设计、估算表提出建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39289683/

相关文章:

javascript - 如何使用MySQL、PHP和AJAX逐步填充表格数据

MySQL ALTER TABLE 创建 : 'Integrity constraint violation: 1452'

php - sql连接需要进一步的帮助

c# - SQL : Select Distinct rows by all columns but omit one column (say ID column)

c# - ZeroMq recv 不阻塞

c# - 没有类型 'Microsoft.AspNetCore.Identity.RoleManager 错误的服务

c# - 使用方法切换 BorderStyle。 C#

c# - 确保给定类型的单个未完成任务的模式

php - TinyMCE UTF-8 保存到 MySQL 数据库

mysql - 如何在 mysql 组中对记录进行排序?