我在Web应用程序中已有一个信息请求系统,以允许用户询问有关供应商报价的问题。该实现与JPA用Java编写。供应商可以注册其报价,潜在客户可以查看它们并提出问题或请求服务。
我选择与客户,要约和供应商建立订单。这些订单不能被"存档",因为它们是永久性的,即用户可以随时回到请求并提出问题。
它可以正常工作,直到供应商决定删除报价(或对其进行重大修改)。由于报价现在已链接到请求,因此我不能再将其删除。无论如何,我希望用户即使报价不再存在,也希望用户继续访问这些请求。
要解决这个问题,我现在正在考虑拥有两种类型的请求实体,一个是实时版本,一个是"存档"版本。档案版将删除要报价的链接,并用文本表单替换。
我会非常感激,因为有人以前必须解决一个类似的问题,并能够解释他们如何解决。
一种常见的方法是管理实体的不同版本(您的报价)。对实体的(重大)更改创建了一个新版本。在您的情况下,新版本没有固有的链接。该系统可以决定更改是否重大,例如如果修改某些属性或修改很大(例如,价格差)或用户(在这种情况下为供应商)决定她的更改是否足够大以创建新版本。通常,您的要约实体的最新版本可以访问。但是链接指向某个版本,当有人访问链接时已加载。