2010-03-29 74 views
2

我们以前只有一个网络应用程序,但现在我们将其分解为多个网络应用程序。每个人都将被打包成单独的产品(网络应用程序)有些人有一些共同的东西有些不。多个网络应用程序和数据库的体系结构

它最初是用php编码并使用Postgresql 8.4和CodeIgniter作为框架。

我正在寻找一些关于如何设置多个Web应用程序的好建议。他们都有自己的独特数据。数据库中的一些数据对于某些应用程序可能是通用的,但不是全部。所有的应用程序将在一台服务器上,并将有一些API来操纵数据。

我希望它的结构使一个用户帐户可以访问他们购买的任何产品。 (有点像谷歌帐户)

我不知道它是一个好主意,有多个数据库,或只是有一个大的。最终我们将使用S3来拍摄一些视频和其他图像。

您的想法和建议非常感谢。


UPDATE:
感谢您的答复。我可以看到数据库分布在很多驱动器上,因为我们不允许删除长达10年的任何数据。

此外,我们有很多图像(我忘了在原来的问题中提到这一点),没有像flikr,但体面的金额。我们现在有近300Gigigs,由于新的业务交易,我们每个月都会看到约500名新成员。现在图像根据他们的组被存储在多个文件夹中。如果硬盘驱动器用完了/我将如何访问它们?我假设这是负载平衡器进来的地方。

回答

0

关于数据库,您可以在PostgreSQL中使用不同的SCHEMA来分离不同的应用程序。然后,您可以为一个应用程序拥有一个只有一个模式的数据库,但也可以为许多应用程序提供多个模式。

PostgreSQL可以处理非常大的数据库,几个TB根本不是问题。

1

单个数据库可能会更干净,只是因为您可以在跨多个应用程序进行查询时重复使用相同的连接,并在没有任何连接的情况下加入它们。例如,在博客条目的边栏中添加相关产品或视频的列表,并使用通用标记系统将其绑定在一起。或者在Google阅读器或邮件主题中添加Wave的功能,并轻松引用电子表格&之间的文档,以便进行Google比较。

总的数据库大小不应该影响任何东西,每个表都是独立于其他文件的独立文件。冲突/混淆的表名可能是主要问题,因为全新的功能被添加,但是稍微有一点名称空间是很长的。

+0

通过单个数据库访问还简化了其他流程,如缓存连接的查询,执行事务,备份/回滚,管理相关表。 – 2010-03-30 00:30:22