【发布时间】:2011-03-28 23:21:44
【问题描述】:
我想更新数据库中具有一对多关系的列表。
例如,有 100 多个科目,学生可以选择他想要的任何内容。假设下次学生编辑他的选择。
对于这种情况,您更新数据库的方式是什么?我习惯做的是删除所有过去的选择并添加所有新选择的主题。这是非常简单的逻辑,但我只是想知道在性能方面是否有更好的方法来做到这一点。在我的例子中,'delete' 是一个单一的数据库调用,而插入 all 是一个单一数据库连接中的循环。
我知道我们可以添加一个逻辑来识别已删除的记录和新添加的记录。这样做真的值得吗?遇到类似情况你会怎么做?
谢谢!
【问题讨论】:
-
@one 可能存在真正的重复,但您的链接问题完全不同。你说删除插入(作为答案)。这里的问题本身是,有什么比删除插入更好的吗?另一个问题涉及2个关系。这个问题涉及一个多属性关系,表示为 1:N 对单亲。
-
@Richard aka cyberkiwi:你读过“长尾编程问题的维基百科”吗? (blog.stackoverflow.com/2011/01/…) 我不认为发布重复的答案符合 SO 的精神。
-
@one 在您的链接中,您是否看到如果您要将用户的问题作为重复项关闭,它必须是真正的重复项。?先给我找一个完全一样的副本
-
@Richard aka cyberkiwi:“先给我找一个完全相同的副本”——我怀疑我做不到,这是主观的。这就是为什么我们有赞成票和反对票的原因,不是吗?
标签: c# sql sql-server database relational-database