IT 资产跟踪数据库 - 规范化问题

IT Asset Tracking Database - Normalization Issue

这是我第一次在这里发帖,但绝对不是我第一次在这个网站上找到答案!

我正在为我们不断发展的零售连锁店创建一个 IT 资产跟踪数据库。我们已经评估了几种不同的服务,但其中 none 完全满足了我们的所有需求 - 所以我们要走自定义路线。最终,我们计划使用 SQL 数据库和 Web 前端,但就目前而言,Access 是启动和 运行ning 的最快方式。

我们不仅要跟踪商店中的资产,还要跟踪员工使用的资产。这些是我目前拥有的 table(与此问题有关):

在我最初的数据库设计中,我们只是跟踪商店资产。我有我的资产 table 和商店 table,以及包含两者外键的资产分配 Table。

如果我希望能够将资产分配给商店或员工,执行此操作的最佳方法是什么?我应该创建 StoreAssignments table 和 EmployeeAssignments table 吗?如果我这样做,在尝试对所有资产 运行 reports/queries 时会不会变得更复杂?

我是否应该创建某种实体 table,其中每个位置和员工都有一个 EntityID。然后我可以将资产分配给实体,而不是直接分配给员工或商店?这样的事情是正确的方法还是完全相反的方向?

我已经使用 Access 和 SQL 数据库多年,但从来没有太高级的东西。我绝对不是DBA!

如果您能提供任何建议,我们将不胜感激。我相信我会有更多问题要跟进;)

好吧,有多种方法可以解决这个问题,但一个简单的方法可能是创建一个新的 Table 实体来放置作业。

作业 table 是您为每个作业添加条目的地方,无论它是什么类型。

所以资产 ID 是资产 table 的外键。 分配类型是确定它是否分配给位置或员工的一些原因(这可以是简单的文本或数字) Assignment Id 是来自 Location 或 Employee

的外键

如果您一次只将一项资产分配给一个地方,则分配 table 可以将资产 ID 作为键。

还有其他方法,可能更好也可能更坏,但没有必要让它变得比您需要的更复杂和过度设计。一个好的解决方案就是能够工作并满足您的需求。