我们过去只有一个网络应用,但现在我们将其分解为多个。每个都将作为单独的产品打包(网络应用程序)有些人有共同点,有些则没有。
它最初使用php进行编码,并使用Postgresql 8.4和CodeIgniter作为框架。
我正在寻找一些关于如何设置多个网络应用的好建议。它们都有自己独特的数据。数据库中的某些数据对某些应用程序来说可能很常见,但并非全部。所有应用程序都将在一台服务器上运行,并具有某种API来处理数据。
我希望它的结构使得一个用户帐户可以访问他们购买的任何产品。 (有点像谷歌帐户)
我不知道拥有多个数据库是否是一个好主意,或者只是拥有一个大数据库。 最终我们将使用S3来制作一些视频和其他图像。
非常感谢您的意见和建议。
更新
谢谢你的回复。我可以看到数据库分布在很多驱动器上,因为我们不允许删除任何数据长达10年。
此外,我们有很多图像(我忘了在原始问题中提到这一点),没有什么比flikr更合适了。我们现在有近300台机器,由于新的商业交易,我们每个月都会看到大约500名新会员。现在,图像存储在多个文件夹中,具体取决于它们的组。如果硬盘驱动器用完房间/我将如何访问它们?我假设这是负载平衡器的用武之地。
答案 0 :(得分:1)
单个数据库可能更干净,只因为您可以在查询多个应用程序时重用相同的连接,并且可以毫不费力地加入它们。例如,在博客条目的侧边栏中添加相关产品或视频的列表,由通用标记系统绑定在一起。或者添加在阅读器或邮件线程中关注Wave的功能,并轻松引用电子表格和他们之间的文档,用于谷歌比较。
总数据库大小不应影响任何内容,每个表都是独立于其他表的单独文件。冲突/混淆表名可能是主要问题,因为在整个过程中添加了新功能,但是一点命名空间还有很长的路要走。
答案 1 :(得分:0)
关于数据库,您可以在PostgreSQL中使用不同的SCHEMA来分离不同的应用程序。然后,您可以拥有一个数据库,其中一个应用程序只有一个模式,但许多应用程序也有许多模式。
PostgreSQL可以处理非常大的数据库,几个TB根本不是问题。