c# - MySQL 删除、更新或插入行

标签 c# .net mysql

我正在使用MySQL DBMS。我有文档表和订单表。它们之间的关系一对多.

创建文档后,用户可以插入一些订单到该文档的订单表。 当用户点击注册按钮时,它会对表格生效。但是之后,用户可以编辑该文档。他/她可以更改、更新、删除订单。

当点击注册按钮时,它将影响订单表。编辑时我想删除该文档的所有订单,然后再次插入。但在我看来这不太好,例如,如果有 100 个订单和用户只更改 1 行,我必须删除 100 行并再次插入 100 行,或者如果用户添加新订单,我必须删除 100 行并添加 101 行。

处理这种情况的最佳方法是什么?请注意,我使用的是 C#。提前致谢。

最佳答案

每当文档发生更改时,您都应该为文档创建一条新记录。您可以使用文档的唯一标识符,然后对文档进行版本控制。每个订单应该与特定版本的文档相关。

这样,您就可以编辑文档,并且每当您编辑文档时,都会创建一个新版本,并且该版本将有新订单。所有版本的唯一标识符将保持不变。简而言之,文档将通过唯一标识符和版本来标识。

您建议的方法有问题,即当您修改文档时,您将重新插入所有订单,但您将永远无法追溯到订单所在的原始文档。

关于c# - MySQL 删除、更新或插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12812526/

上一篇:内网MySQL慢查询

下一篇:MySQL 时区

相关文章:

c# - 在 c# winforms 中的窗体之间传递数据的最安全方法

c# - 临时文件保存的时间长度?

.net - SqlCommand.Prepare() 有什么作用,应该在什么时候使用?

javascript - 如何将数据从模态表单(JQUERY-UI)传递到mysql?

Mysql 使用 unixtime 值对时间戳进行选择时,日期时间值不正确

java - 如何防止Mysql Connector/J转换DATE和TIME时区?

c# - 通过 AT 命令使用 C#.net 拨号

c# - 如何将跟踪输出发送到文件系统中的文件?

c# - UI 进程的 WPF 加载动画

c# - tasks 参数包含一个空值