我们正在开发saas模型中的应用程序 - 多个用户共享一小部分数据,而且大多数用户都是唯一的,只能按用户访问。 也可以在彼此之间共享一些信息。
系统的一部分处理RMA服务。我们假设:
全球/共享PRODUCTS
和PRODUCENTS
表格
用户的表格,例如。 RMA
,CLIENTS
和其他许多具有独特数据的人
一些用户向其他用户提供服务外包
数据库是MySQL,问题是如何在可扩展性和维护的上下文中处理用户之间的数据分离,为所有人提供公共表?
1为每个注册用户创建新数据库
2为每个用户创建设置的前缀表
行级别的3个单独数据
Schema的设计符合n3f,在某些方面具有非常复杂的关系。
提前感谢您提出任何建议。
----编辑:
多个TENANTS共享一些“全球”数据(例如,产品和产品)
每个租户有多个USERS
场景:作为服务提供商,其他TENANTS可以看到TENANT XYZ,因此其他人可以使用XYZ的服务
我主要关注的是,如何处理多租户架构。通过过滤器检查给定租户可访问哪些数据,从一个数据库提供数据会更有效率
OR
更好地为每个租户设置单个数据库?
答案 0 :(得分:0)
有几种方法可以实现这一目标。让我记下我的观点。 基础 1.设计允许您标记哪些实体数据可供哪些租户的用户访问。
场景1:统一视图 基于租户可访问性的数据列表。在这种情况下,最终用户将根据每个租户的许可查看整个数据集。
方案2:单租户视图 登录用户必须切换到租户的上下文才能查看该用户可以查看的数据。 在这种情况下,默认情况下用户可以查看自己的租户数据,根据要求查看服务管理员数据,他必须冒充自己作为服务管理员用户(模仿进入图片,因为他获得了对某些部分的视图访问权限)数据)。
在实现的角度来看,场景2有点简单和强大。
与我们分享您的理解。