1

我在设计架构中实体之间的关系时遇到问题。问题是每个Asset(投影仪、笔记本电脑等)都可以改变用途/位置(除其他外),如果我想获得这些值中的最新值,它目前将涉及大量加入等。 ...为了跟踪这些变化,我定义了一个这样的模式:

在此处输入图像描述

意思是anAssetInstance代表使用Asset,即借出,送修。每个AssetInstance人都有责任记录Asset. 但是,如果我使用这种方法并且我想获得一个Assetwith的当前用户AssetID = 1,我需要加入 Asset,AssetInstance 然后按Date排序并选择最上面的那个,然后加入 withUser以获得他们的名字。

理想情况下,我希望资产保留与之关联的最新用途、位置、货架和用户。我意识到这可以通过将这些关系添加到 Asset 中来实现,然后在为 Asset 创建新的 AssetInstance 之后在我的代码中适当地更新 Assets 列。

对我来说,这似乎远非理想,我想知道是否有更好的方法来做到这一点。

谢谢 :)

4

1 回答 1

2

我认为你可以从另一个角度看待设计
让我们说AssetInstance is a货架、位置和用途的重新分配。所以我更喜欢叫桌子TransactionRelocation-Transaction
由于货架,位置和用途是自然属性,Asset我们将在资产表中具有它们的关系。最后位置、货架和用途保存在资产表的这些外键中。
relocation-transaction 表包含重定位的历史,因此我们将在资产重新定位时插入一行(甚至可能在资产创建的第一位)。
我认为有一个交易基表是一个好主意,可能需要对资产采取进一步的行动来跟踪和报告,比如资产无序、出售……
草稿模型将是这样的:
在此处输入图像描述 希望这可以帮助。

于 2013-10-05T14:18:20.127 回答