1

我必须为企业开发一个数据库来管理其PC 硬件和软件库存、PC 故障以及向用户分配的 PC。

我是数据库设计的初学者*,所以我想要一些关于如何从头开始正确建模数据库的建议。

我已经做了一些研究并开始了一些事情,但是由于你们是专家,我希望你们能接受。

细节并不重要,我需要的是知道你会制作什么表格,以及它们之间的关系。

我已经包含了我想出的 ERD 的屏幕截图。请看一看。

ER图

这是我到目前为止所做的。我知道这可能是糟糕的设计,请记住这对我来说是第一次。

  1. 基本上,我有一个用户列表。
    • 让我们去找一个用户表。
  2. 每个用户可以拥有多台电脑(但一个用户只能拥有一台电脑)。
    • 所以,PC表,用FK给用户。
  3. 一台 PC 由许多类型的已识别硬件组成,这些硬件来自一组 MB、CPU、HDD、RAM、GFX 卡列表。
    • 在这里,我为硬类型(cpu、gfx 等)制作了一个类别表
    • 然后制作和建模表。
    • 最后是一个模式详细信息表,用于存储各种详细信息,如频率、大小等。
    • 我将这些表链接到一个带有 FK 的硬件表,以混合给我一个硬件。---> 我知道必须有一种方法可以更好/正确/有效地链接表格!
  4. 我希望能够显示从设置列表中给出的 PC 用户/硬件,并通过其账单跟踪硬件。
    • 所以我做了一个硬件库存表。我将一个硬件链接到hardware_stock 表中存储有FK 的许多硬件及其计费。
  5. 我可以跟踪每台 PC 的故障/故障。
    • 有一个故障类型表。我通过包含 FK 到 pc_id 和 failure_type_id 的相交表故障事件将它链接到 PC。
    • 然后我将评论保存在与 failure_event 链接的单独表中。

就这样。我还没有解决软件管理问题。基本上,它与硬件相同,我有一组不同软件的列表,并且:

  • 我想知道PC上安装了什么。
  • 我想知道软件库存附带的账单和许可证。

感谢您的反馈!

4

2 回答 2

1

我认为有两种选择:

  1. 添加表“software”、“publisher”、“software_category”;添加类似于“pc_hardware”的链接表。
  2. 将“硬件”更改为“组件”,并将“软件”添加为组件类别。

选项 1 增加了更多的表,但更加独特;使用这种方法管理软件许可证可能会更容易。

选项 2 的表格较少,但更难理解。在这种方法下,软件许可证可能是一种“产品保修”(但感觉很混乱!)

只是出于兴趣,您是否调查过任何进行资产管理和问题跟踪的开源或 COTS 产品?我不知道是否有任何产品可用,但你不能成为第一个想做这种事情的人/企业!

于 2013-08-29T10:59:02.140 回答
1

你的关系对我来说有点太多了。

以下是您可以检查自己的 ERD 的方法。使用铅笔和索引卡,写下您提议的系统屏幕的屏幕字段和您提议的系统报告的报告字段。

像这样的东西:

Add a new PC
------------
PC name
PC network
User
...

每个屏幕和报告一张索引卡。

如果您愿意,您可以勾勒出屏幕和报告的外观。

一旦您为您可以想象的每个屏幕和报告完成此操作,您就可以将您的纸质屏幕映射到您的纸质数据库 (ERD)。如果您可以轻松想象(编码)纸质数据库的选择、插入、更新和删除 SQL,那么您的设计就是好的。

于 2013-08-29T13:23:31.600 回答