0

我有一个带有 2 个表的旧数据库:

table1=标准项目

表 2=所有项目

该数据库最初设计为单个项目的工具。

我喜欢有一个单一的数据库来处理所有项目,但这需要一种新的设计——当需要数据库来执行此操作时,最好的设计是什么:

  1. 制作标准项目的副本
    a. 大约 50 个标准项目和项目经理 (PM) 经常需要制作 2-3 个相同项目的副本。
  2. 对第 1 步中的新项目进行更改
  3. 仅对步骤 1 中的新项目进行查询
  4. 几个项目经理可以在步骤 1-3 上工作
  5. 在项目期间可能会发生新项目的更改(步骤 1)
  6. 当项目完成时,需要将新项目与所有项目一起存储在表中

在这方面需要帮助:当我需要复制项目(有时是几个相同的项目)时,最佳做法是什么?我如何在 PM 之间分离新项目 c. 我如何将所有项目放在 table2 中

我真的需要有关此最佳实践的帮助。

4

1 回答 1

1

不需要两个表,您可以用标志和日期指示项目在工作方面的位置。考虑下面的草图。

项目

ProjectID
Contact -- fk to PM id. This is just the lead, all other contacts are
           in the PersonsProject tables
Etc

项目 -- 全部

ID -- pk
ProjectID - fk to Project
AssignedTo - fk, but it all depend on whether a person is in charge of an item
Stage and / or status -- fk to list
Description
Notes
Created date
Completed date
Deleted date
Deleted reason
Created by
Deleted by

ID
Etc

PersonsItems 或 PersonsProject

PersonID
ProjectID
Notes
etc

可能是分配项目表

PersonID
ProjectID
ItemID

此外,如果您有一个有限的可能项目列表,您可能需要一个项目列表表,在这种情况下,ItemListID 将进入 Items 表,而 Description 将出现。

于 2013-02-09T13:23:14.873 回答