所以我有一个表,其中有一个自动增量主键和两个外键,每个外键对应一个不同的表主键。所以基本上这个表是用来存储表一和表2之间的关系,如下所示。
this_table_id table_one_id table_two_id
1 1 2
2 1 1
3 2 1
用户可以同时更新按 table_one_id 分组的所有条目,因此所有 table_one_id=1 的条目都会显示给用户,并且他可以删除或添加 table_one_id=1 与表 2 条目的关系。
目前我实现的解决方案是,无论用户更新或不更新什么。当他提交时,我删除该 table_one_id 的所有先前条目并再次插入值。因此,如果他更新了它们,它们就会发生变化,如果不是的话,这只是浪费的查询。平均情况下,大多数情况下有 4 个条目,因此不是很密集。
我想应该有一个更优雅的解决方案,然后删除所有旧值,我唯一能想到的就是检查更改,然后根据每个条目的内容进行更新或删除或插入用户这样做了,但这感觉很乏味。
ps:使用jsf前端和jpa后端
进一步说明
我正在寻找的是当用户在单列中显示具有相同值的多行(如 table_one_id=1)时的理论(因此他将显示上表中的第 1 行和第 2 行)并且他删除了几行,添加新行并按提交
以编程方式处理它的最佳方法是什么。我应该检查他的每个新条目,看看它是否已经在表中,如果不在表中,则添加它们,如果它们在表中,则保留它们,如果用户删除了某些内容,则删除它们,或者是否有更好的方法。删除所有旧条目并插入新条目是一个合理的解决方案
最佳答案
尝试使用触发器。每当更新事件运行时,触发器都可以帮助您在该事件之前或之后触发查询,而不必一次又一次地进行繁琐的更新工作。您可以引用>> http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html了解语法和用法。
关于java - 根据用户输入在表中添加和删除多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28038957/