【发布时间】: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