推荐的MySQL数据库体系结构,支持使用客户端拥有的数据进行应用程序

时间:2011-05-06 20:08:46

标签: mysql database-design architecture

  

可能重复:
  Single or multiple databases

我们正在开发一个应用程序,它将具有应用程序范围的数据和客户端拥有的数据,这些数据最理想地驻留在每个客户端特定/拥有的数据库中。

所以我们面临的问题是:

  • 跨所有客户拥有的数据库复制应用程序范围的数据
  • 将应用程序范围的数据保存在单独的“元”数据库中,主要依靠应用程序级别来协调元数据库和客户端数据库数据
  • 将应用程序范围的数据保存在单独的“元”数据库中,并利用跨数据库外键和联接使元数据库有效地成为所有客户端数据库的一部分

我倾向于第三种选择,对它可以提供的灵活性和规范化感到兴奋。但我不认为自己是一位经验丰富的MySQL用户,而且我不确定性能,安全性和管理分支。

非常感谢任何经验/指导!

2 个答案:

答案 0 :(得分:1)

将应用程序范围的数据保存在单独的“元”数据库中,主要依靠应用程序级别来协调元数据库和客户端数据库数据。

为我们工作。

不要复制,这是一场噩梦。

避免跨数据库外键和连接,因为它们不是非常便携。在某些时候,您将希望迁移到另一个数据库。纯数据迁移得非常干净。

当我们进行平台升级(操作系统,数据库版本等)时,我们从一个服务器上的“元”和客户端特定数据库中提取数据,并将其加载到新服务器中。在新配置中在几秒钟内启动并运行。没有关于让跨数据库密钥和连接工作的谜团。

答案 1 :(得分:1)

要考虑的一个重要因素是客户端是否将位于应用程序的独立升级路径上。如果他们愿意,那么几乎可以肯定他们将需要他们自己的应用程序范围数据的本地副本,以避免升级时的兼容性问题。

另一个因素是客户端是否与提供应用程序范围数据的中央服务器具有可靠的连接。如果没有,他们应该有自己的数据副本,以避免停机风险。

我认为您提供的第三个选项在性能和可靠性方面似乎风险最大,除非“本地”客户端数据库和中央应用程序数据库位于同一台计算机上。