如何设计这个简单的数据库?
我需要向用于跟踪服务器的数据库添加一些内容。
表看起来像这样。
Matrix
| Name | Description | Etc | Etc |
------------------------------------------------
| Server01 | First Server | Data | Data |
我想添加一个名为更新的表。它应该看起来像这样:
Updates
| Name | Q1 Updates | Q2 Updates | Q3 Updates |
------------------------------------------------------
| Server01 | Done | Incomplete | Incomplete |
“链接”这些表的最佳方式是什么?我需要 Matrix 的名称字段中的所有内容也都在更新表中。在数据库方面,我是一个基本的菜鸟,所以我需要一些 101 的帮助。
我为另一个表设置了一些触发器来跟踪其他信息并且效果很好......我可以为我想要创建的表添加更多触发器......但我不确定这是否是最好的方法。
你会怎么做?
编辑:我希望 Updates 中的 Name 字段始终是 Matrix 中内容的精确副本。
根据您在此处获得的内容,看起来您应该能够基于“名称”字段一起加入矩阵和更新。如果你想查看 Matrix 中所有有更新的服务器,你可以这样做:
这是基于一些假设:
“你会怎么做?”
如果是我,我会创建一个如下所示的更新表:
行数据如下所示:
它将具有 Name 和 TimeFrame 的复合(主)键以确保唯一性(因为在这种情况下,将重复“Name”)。
这里的优点是,如果您的更新时间范围在任何时候发生更改/增加(例如:如果您每 2 个月开始更新一次,而不是每季度更新一次),您可以灵活地添加更多更新,而无需添加一列更新表。当然,我是在不知道更新的其余字段是什么的情况下说的,所以这可能没有意义。或者也可能有其他规范化/优化的机会。
我可能会从这样的事情开始:
然后你填写你的矩阵条目
同样,更新像这样填充
最后,插入可能的 Update Stati
现在,您有了组装“配置”的框架:
然后可以使用数据透视查询来查询此“配置” :
使用这种设计,这不是问题,因为 Name 没有被冗余存储。
这个怎么样?