代码之家  ›  专栏  ›  技术社区  ›  Saher Ahwal

将所选表行添加到数据库的最佳算法

  •  2
  • Saher Ahwal  · 技术社区  · 15 年前

    我试图在后备Java bean中应用一个保存方法,它将选择选中的表行并将它们保存在数据库中。但是,假设用户稍微改变了他的选择(5个选择中的1个)。我想知道我将要应用的算法,如果它在长期内影响效率的话……

    这就是:

    1. 每次用户单击按钮(保存)时,我都会删除他以前的所有选择,并将当前的所有选择插入数据库。
    2. 单击按钮后---查看用户取消选择的行,从数据库中删除它们的行并添加新的行????

    选择2比选择1好还是不好……或者选择数量不超过15并不重要??

    谢谢

    1 回复  |  直到 15 年前
        1
  •  1
  •   Lasse V. Karlsen    15 年前

    我肯定会选择选项2,试着找出您需要执行的最小操作数。

    但是,在截止日期等时间内回到选项1是很正常的,因为它更容易实现。

    然而,不应该那么难弄清楚这些更改是什么,因为在我看来,您似乎没有自己更改行。要么是删除那些清除了选中标记的,要么是插入那些设置了选中标记的。

    只需存储数据库中任何内容的主键值列表,然后在用户希望保留更改时迭代新列表时与该列表进行比较。

    这里的最小工作解决方案还意味着在重构、更改或添加方面,您将更具前瞻性。例如,如果将来有数据附加到这些行中的任何一行,该怎么办?你也需要保持这一点。一般来说,我有点反对仅仅为了“假设”而编写代码,但在这里,我觉得这更像是“为什么你不……”而不是那样。

    所以我的建议是选择2。没有多少工作了。