我有以下表格。
Available_Ip_Address(IP_Address_ID(主键)、描述、状态)。
Virtual_Machine(VM_ID(主键),描述,IP_Address(外键))
场景如下:-
我们维护单个表的所有可用 IP 地址。
我们在另一个表中维护虚拟机信息,但可以随时将特定 IP 地址分配给单个 VM。
- 所以我在添加虚拟机时添加了一个下拉列表,其中包含所有状态为“可用”的 IP 地址。
- 但由于两个用户可以创建一个虚拟机,他们可能会选择相同的可用 IP 地址
- 所以我发现保护我们系统的最佳方法是使 Virtual_Machine 表中的外键 IP_Address 唯一。
- 然后,如果两个用户选择相同的 IP 地址,则会在数据库中为其中一个用户引发异常,我可以传播异常,然后向用户显示一条用户友好的消息,表明该 IP 地址可能已被占用。
所以我的方法是否被认为是一个有效的设计,或者我应该寻找在 IP_address 字段上添加一个时间戳字段,所以如果 IP 地址的状态自上次查询以来发生了变化,那么记录将具有新的时间戳,并且将引发异常在应用层面。
此致