gpt4 book ai didi

c# - SQLite & C# ] 如何控制编辑数据库文件的人数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:05:02 24 4
gpt4 key购买 nike

我现在正在使用 SQLite 编写一个简单的客户信息管理软件。

一个exe文件,一个db文件,一些dll文件。 - 就是这样:)

2~4 个人可能会同时运行这个 exe 文件并访问数据库。

他们不仅会阅读,还会经常编辑。

是的,现在来了最著名的问题之一......“同步”

每当有人尝试时,我都试图创建/删除一个临时的空文件编辑它。 (这是访问数据库的“ key ”。)

但是一定有更好的方法:(

防止此问题的最佳方法是什么?

最佳答案

嗯,SQLite 已经为每次使用锁定了数据库文件,想法是多个应用程序可以共享同一个数据库。

但是,SQLite 的文档明确警告在网络上使用它:

SQLite will work over a network filesystem, but because of the latency associated with most network filesystems, performance will not be great. Also, the file locking logic of many network filesystems implementation contains bugs (on both Unix and Windows). If file locking does not work like it should, it might be possible for two or more client programs to modify the same part of the same database at the same time, resulting in database corruption. Because this problem results from bugs in the underlying filesystem implementation, there is nothing SQLite can do to prevent it.

A good rule of thumb is that you should avoid using SQLite in situations where the same database will be accessed simultaneously from many computers over a network filesystem.

因此假设您的“2-4 人”在不同的计算机上使用网络文件共享,我建议您不要使用 SQLite。请改用传统的客户端/服务器 RDBMS,它设计用于来自多个主机的多个并发连接。

您的应用程序仍然需要考虑并发问题(除非它推测性地获取用户当前正在查看的任何内容的锁,这通常是一个令人讨厌的想法)但至少您不必处理网络文件系统锁定问题还有

关于c# - SQLite & C# ] 如何控制编辑数据库文件的人数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3463455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com