【问题标题】:Advise on database design for a project lifecycle就项目生命周期的数据库设计提供建议
【发布时间】:2012-06-29 22:53:21
【问题描述】:

在我们公司,一个项目开始它的生命是作为一个业务开发,它有它自己的 3 个阶段的生命周期。一旦业务开发结束其生命周期,它可能会成为一个成熟的项目,然后开始一个全新的 3 阶段生命周期。然而,有时业务发展在项目的初始阶段之后永远不会成熟。

考虑到这一切,我决定为业务开发 (BD) 设置一个表,为项目(将它们视为单独的实体)分别设置一个表,每个表都存储它在生命周期中的当前阶段。当 BD 成为项目时,它会被输入到项目表中。由于该项目仍然需要引用所有与 BD 相关的字段以及任何新的 Project-only 字段,因此它通过 FK 对 BD 表执行此操作(基本上继承了 BD 的所有特征并添加了更多)。

所以我想检查一下这个设计中是否有我遗漏的问题。也许我应该把所有东西都放在一个 Projects 表中并完全删除 BD 表? 关于如何最好地处理这个问题有什么想法吗?

【问题讨论】:

  • 我会警惕将您的数据库设计得太接近您当前的项目生命周期。项目管理方法变化非常频繁!也许如果您可以使数据库更通用,应用程序用户可以定义“阶段”。甚至可能研究工作流解决方案(例如 .NET 世界中的 WWF)。
  • 谢谢 RB,我会好好考虑的。虽然这里定义的方法看起来确实很可靠,但它肯定会改变。

标签: sql database-design relational-database


【解决方案1】:

由于您的项目有不同的阶段,您可以设计一个表格来包含该项目,并带有一个状态字段来显示它处于哪个阶段。然后根据状态字段的值,您可以知道它是在业务开发中、在项目阶段还是已完成。

出于审核目的,您还可以跟踪不同阶段之间的更改时间。

【讨论】:

  • 感谢 ssmusoke,这是保持清洁和简单的最佳方式
猜你喜欢
  • 2017-01-10
  • 2012-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多