我为我的公司开发了一个PHP应用程序,问题是我刚刚发现该应用程序也必须脱机工作。 应用程序的工作方式如下:从MySQL数据库加载一些数据,然后你必须编译一些清单,在数据库中插入新数据,最后生成一个JSON。
该应用程序将被我们公司的许多人使用,因此我们考虑在他们的计算机上安装Web服务器(Apache)并使应用程序在他们的机器上运行。问题是,如果我们决定采用这种方式,我们必须:
我们没有时间考虑真正的桌面Java应用程序,因为此应用程序将从1月开始使用,因此我们没有时间进行开发。
你有什么建议吗?有什么我没有想到的,或者是一种可以帮助我的技术? 谢谢!
PS。我已经考虑过像PHP桌面的Nightrain这样的程序,但它们只避免安装Apache,仅此而已......
答案 0 :(得分:1)
<强>简介强>
既然您显然需要快速解决方案,我会给您一个。这是基于我们所知的信息。警告,这个解决方案并不优雅,当你有机会时你需要更换它。
<强>解决方案强>
BINARY(16)
替换为索引。每个记录都需要使用CSRNG随机生成伪主键,二进制16只是方便遵循UUID标准。这将确保每个新记录保持唯一索引,尽管缺乏其他发行版的知识。
你们的表没有主键索引,因为它们是唯一的,并且由于数据库是分布式的,所以无论如何都无法检查键的唯一性,所以没有必要使用它
事实上,通常,中央数据库上的所有数据从现在开始将是一次写入/只读。无论新合并的数据有多么错误,都不能删除或修改它。
所以每个表都需要一个时间戳。
您剩下的是一个接收所有数据的中央数据库,对数据的更改将由更新数据的存在来表示。
<强>结论强>
如果我真的也有,我只会使用这个解决方案。事实上,我估计它甚至有80%的可能性甚至可以用于低于标准的质量。它还假设您可以将所有剩余的开发时间用于重新分解数据插入方法。
您将不得不处理这样一个事实,即中央数据库需要大量的管理工作来管理数据的完整性,您需要假设您无法更改从笔记本电脑合并的输入格式。
每个新功能都需要向后兼容旧数据。