【问题标题】:Database Compatibility: Building a database to support apps across multiple OSs数据库兼容性:构建数据库以支持跨多个操作系统的应用程序
【发布时间】:2025-12-31 12:40:10
【问题描述】:

我对开发应用/软件知之甚少,所以请提前原谅我的无知。

我想开发一个专有的数字词典(使用我自己的定义,而不是从其他网站获取的)。为此,我需要建立一个数据库,其中包含每个单词的多个定义以及它们的许多使用示例。

最终,我想使用这个数据库来构建适用于 Android、iOS 和 Microsoft 操作系统的应用程序。我的问题是,例如,如果我使用 SQL Server 2012,当我尝试为 Android 制作应用程序时,我是否能够使用同一个数据库?如果不是,他们是否有任何中立的开源数据库系统,比如 XAMPP,它可以在所有三个操作系统上运行?

额外信息:我希望应用程序从嵌入应用程序的数据库中提取定义,而不是从互联网服务器;这样,用户将能够在没有互联网连接的情况下使用字典。

【问题讨论】:

  • 您无法在 Android 上运行 MSSQL。除非客户自己拥有 SQL Server,否则您不能将其与 Windows 上的程序一起提供。涉及许可证问题。我建议你改用 sqlite。

标签: android ios database windows-8 operating-system


【解决方案1】:

是和不是。

SQL Server 与 ASP.NET 一起工作得非常好,并且使用 ASP,您可以编写一个 Web 服务来从服务器获取数据并以可读格式(XML、JSON 或其他格式)将其传送到任何平台。

然后,从服务器获取数据将只是从任何平台使用 Web 服务的问题。任何移动设备,您决定制作的任何桌面实现,或者即使您只是为您的网络服务提供了一个网页,以便可以通过浏览到一个网址来使用该网络服务。

从那里,您需要做的就是使数据可以离线访问,只需设置应用程序以第一次下载整个数据库并将其存储在本地(从这里,您可以简单地使用 sqlite)。从那时起,它可以简单地寻找更新。但请记住,移动设备的存储容量有限。

【讨论】:

  • 那么,我可以使用 SQL Server 使用 ASP.Net 制作一个骨架网站,然后让不同的应用程序从网站中提取信息?
  • 另外,这样安全吗?我可能需要花费数年时间来开发定义和示例;我不希望有人制作更漂亮的应用程序并窃取我的定义。 (也许版权可以解决这个问题)。
  • 没有。您使用 ASP.NET 来制作骨架 web 服务。它不必有一个网站。 ASP.NET 与 SQL 服务器对话(理想情况下甚至托管在同一台机器上)以获取使用 Web 服务的人所要求的数据。您可以通过 GET 或 POST 请求获取数据。
  • 使用网络服务时,您正在发送参数。例如,您在寻找什么词的定义?那将是一个论点。您可以将某种密码或某种安全性添加到参数列表中,以便 Web 服务只能由提供正确密码的人使用。
  • 您可以使用 https 使应用和网站之间的通信更加安全(除了密码,可能会被黑客嗅探)
【解决方案2】:

如果您想要一个可以在本地嵌入到您的应用程序中的通用数据库,而不是访问远程数据库,那么SQLite 可能是一个不错的选择。它在 iOS 和 Android 中完全受支持。它具有 C API 以及其他 API,因此它也应该适用于其他移动环境。

【讨论】:

  • 感谢您的回答和此链接,我正在查看。