首先,我为这个看似愚蠢的问题道歉,我对数据库的态度不是很强。
我正在重新设计C#中的桌面应用程序,以便在本地网络上使用,该网络基本上是一个高度专业化的票证跟踪系统。基本上当用户启动应用程序时,他们将被要求获取他们的凭证以获得对系统的访问权,然后应用程序将向中央数据库查询数据(当前是在本地机器上运行的MySQL服务器),并在屏幕上显示它。
我的问题是,如果连接了四个用户并且两个用户输入了新数据,那么让每个用户知道新数据的最有效方法是什么?是否只是查询数据库并使用计时器上的新数据更新应用程序?或者是否会创建一个服务器应用程序来放置在用户和数据库服务器之间以自己执行查询并通知每个连接的用户更新的数据?
答案 0 :(得分:1)
查看全部取决于实时通知客户有关数据库更改的重要性。如果您的客户没有延迟一两分钟的问题,您可以选择定时器方法。但如果他们真的希望数据是实时的(延迟小于1-2秒),那就选择另一种方法。创建一个单独的服务,轮询数据库并通知客户端应用程序任何更新。为此,您可以使用套接字列表器。 希望有所帮助!!
答案 1 :(得分:1)
4位用户?在本地局域网?使用简单的索引查询?只需从客户端轮询数据库。在应用程序启动时启动一个线程并让它每2-5秒运行一次查询,然后使用适合后台线程更新.NET中GUI的任何内容通知用户。
这很简单,不要过分思考。 “最难”的部分是用户的异步通知(这取决于您的GUI布局和所需的操作可能也不是什么大问题,因此引用)。