想象一个具有两个实体/对象的 Web 服务,Room 和 Person,其中 Room 通过 Room.Occupants 属性集合公开其中的人员。每个实体都有一个 LastModified 日期。
如果一个房间的新表示被 PUT 到服务中,并且一个居住者被移除,这是否应该改变房间上的 LastModified?
答案对缓存有影响。
您可以认为实际修改的实体是 Person,因为它的 RoomId 设置为 NULL。
但是对 http../rooms 的修改日期的有条件请求将无法反映房间的完整表示的变化,包括它的居住者。
如果您认为 Room应该更改其 LastModified,那么您需要更新可能有两个 Room 的时间戳,只要将 Person 写入服务并且其 RoomId 已更改。
如果 Person 拥有 PersonalBelongings 集合怎么办?这可能很快就会失控,所以对象的表示是否应该排除表示任何关联的集合以避免所有这些复杂性?
卢克