数据库设计指南

时间:2015-08-25 12:35:10

标签: database database-design

我设法让我的数据库有点设计。到目前为止,它看起来如下 enter image description here

这就是场景。重点是我的项目表。项目属于单个客户。所以我可能会创建一个说SO的项目。该项目可以使许多用户(图像显示错误的关系)在项目上工作。这些用户中的每一个都属于一个部门。所以我和Bob可能正在为SO项目工作,我属于Marketing,Bob属于Finance。

这是我感到困惑的地方。每个部门都有一套项目需要完成的文档。营销可能需要执行文档a和文档B,而财务可能需要执行文档C.

说我做这样的事情 enter image description here

我基本上说一个部门有一个或多个文件。但是你可以看到它变得混乱。如何显示Marketing具有documentA和documentB以及Finance具有documentThree?

我是否需要将营销和财务定义为与department表一对一的关系,然后执行来自此的文档?这将产生类似于

的内容

enter image description here

这是正确的方法吗?基本上,我需要将不同的文档链接到不同的部门,实现这一目标的最佳方法是什么?

由于

1 个答案:

答案 0 :(得分:2)

就我个人而言,我不喜欢任何一种方法;因为当表中的数据几乎相同时,它们为每个doc类型创建单独的表。在这些情况下,我会更赞成一张桌子。

我会有一个文档表,其中包含表示文档类型的类型,并且是DocumentType表的forein键,列出了所有文档类型。

根据为项目和部门选择文档类型的方式,我会有一个DepartmentDocuments表,列出每个部门可以使用的文档。我还有一个ProjectDepartmentDocuments表,它指示用于特定项目的强制和可选文档,以及特定于部门/项目的信息。

我还质疑用户与项目之间的关系。看来一个项目只能有一个用户。如果是这样的话你的设计很好。但是,如果项目可以包含许多用户,则应该有一个projectUsers表来处理多对多关系。