我正在创建一个允许用户将记录添加到数据库的网站。在添加记录之前,提交的记录需要先由主持人批准,然后才能在实际记录表中允许。我想利用2个recordObject来实现这一目标。一个是另一个的子类,并继承了它的所有列和属性。
所以pendingRecord扩展了Record。 pendingRecord提交首先进入pendingRecord表(与Record表的列相同),当它被主持人批准时,pendingRecord行将被添加到Record表中并从pendingRecord表中删除。
有谁知道我怎么能做到这一点?我已经看过使用@Inheritance和@Mappedsuperclass注释,但它们似乎都没有给我我需要的解决方案。
亲切的问候,
答案 0 :(得分:1)
据我所知,你不遵循语义:
您有一条包含未批准数据的记录。另一条记录是关于批准的数据。所以,即使你倾向于看到冗余,也不是。因此继承是错误的。
如果你的整体记录得到批准或拒绝,你可能会想出一个包含人工制品的状态字段,以确定记录是否已被批准或拒绝。
在您的情况下,单向或其他继承是不合适的。
仅重用数据结构,因为它们看起来相似可能会导致错误类型II。你认为你的代码更好,但实际上你会让它变得更糟。在这种情况下,您希望从没有适当抽象的东西中抽象出来。
想一想:我的提议和订单包含类似的信息,但它们的语义完全不同。对包含重叠字段的商品和订单没有这样的抽象。它们是完全分离的数据结构。