我正在考虑使用 Orchard CMS 为我的 SaaS 应用程序实施多租户门户解决方案。我很高兴多租户似乎是一流的功能,但看起来为了实现它,我必须要么 a) 为每个租户创建一组带有表前缀的表,要么 b) 拥有每个租户的单独数据库。
我正在尝试为 10,000 多个客户构建一个解决方案,因此任何需要我对每个租户进行物理数据架构更改的东西都无法扩展。在我们的 SaaS 应用程序中,我们在所有表上使用了一个tenantID 列,再加上使用 nHibernate 过滤器和大量索引来允许我们进行扩展。
我想在果园做同样的事情。因此,我想要一组具有tenantID 的表,而不是每个租户的表,然后使用数据访问层(NHib)中的过滤器来始终提取正确的数据。
问题:
1)这可能吗?2)有人做过吗?3)对最好的方法有什么想法吗?我打算直接修改 MultiTenancy/NHiberate 模块源。