告知用户SQL表更新的最佳方法?

时间:2012-04-10 14:55:52

标签: python mysql notifications

我有一个桌面python应用程序,其数据后端是MySQL数据库,但其先前的数据库是网络访问的xml文件。当它是xml驱动的时候,我在应用程序启动时产生了一个线程,只需检查xml文件中的更改,并且每当修改日期发生更改时(由于任何用户更新它),应用程序将刷新自身以便多个用户可以使用并查看应用程序在开展业务时的变化。

现在该程序已经成熟并且正在冒险进入在线状态,因此可以在任何地方使用。 Xml在窗外,我使用MySQL和SQLAlchemy作为数据库访问方法。但是,图表会变粗,因为信息不再存储在一个xml文件中,而是分成SQL数据库中的多个表。这使得某种“最后修改的”表值或结构的想法复杂化。因此,问题是,您如何通知用户数据已更改且应用需要刷新?以下是我的一些想法:

  1. 每个表都需要一个最后修改过的列(这似乎是最糟糕的选择)
  2. 一个单独的表,其中包含一些最后修改过的列?
  3. 通过服务器进行某种推送通知?
  4. 应该提到的是,我有能力在托管SQL数据库的同一台服务器上运行一个非常小的python脚本,也许应用程序可以连接到(并通过套接字?)它可以传递信息到所有连接的客户端?
  5. 一些额外信息:

    • 来回传递的信息带宽相当低。主要是具有一些图像潜力的文本(很少超过50k)。
    • 目前的客户数量非常少,在十位。但是这个项目可能会被一些大公司所接受,客户数量可能达到数百个。在可预见的未来,即使带宽也不应成为问题。

    无论如何,对我来说有点新的领域,那么会做什么?提前谢谢!

1 个答案:

答案 0 :(得分:0)

据我所知,这不是客户端 - 服务器应用程序,而是具有公共远程存储的应用程序 一个想法是改变为Web服务(从长远来看,这将解决您的大多数问题) 另一个想法(如果您不想切换到Web)是使用计时器定期刷新界面中的数据 另一种方式(也就是更复杂)是让服务器接收所有更新,将它们存储在数据库中,然后将更改推送到其他连接的客户端。
您提到的前两个想法将具有维护,可扩展性和设计丑陋问题 在我看来,最后2个更好,但我仍然坚持将Web服务视为最佳。