2015-05-08 74 views
1

是否有软件为Django提供多数据库多租户支持并且可以与MongoDB一起使用?使用MongoDB的Django多数据库多租户

我想我只需要在数据库级别的多租户,也许在模式级别,而不是在应用程序级别。

我有一个相当复杂的用户模型。一些用户可以查看其他用户输入的某些数据。用户通常属于组织。组织可以层次化嵌套,并且组织可以在组织中为用户配置应用程序的方式相似(例如,组织内的所有用户将填写相同的表单,除非个别用户覆盖该表单)。有时,用户提交的某些数据可以被组织以外的用户查看,甚至可以在组织所在的层次结构之外查看。使用该应用的组织可能是竞争对手,我们处理的数据非常敏感,因此它需要非常安全。它也需要很快开发。

我正在考虑给每个用户自己的数据库,然后或者共享数据库或一个共享数据库与多个模式,以便存储组织内用户共享的配置。

回答

1

MongoDB上的多租户是完全可行的,我们在onliquid.com的生产中使用它。

我不知道任何lib,插件或特定软件可以为您做到,但它可以做得不那么费力。如果你想深入研究它,我建议在选择数据库进行读写操作时,特别注意你所使用的驱动程序的行为。还要看看MongoDB配置选项,如smallfilesdirectoryperdb,它们可以让您更好地管理差异并避免一些问题。

我前段时间写了一个blog post关于使用Mongoid的Ruby on Rails的介绍,大多数细节都适用于所有的web框架并且适用于MongoDB的内部工作。