我正在开发一个Web应用程序(ASP.NETCore6),用户可以在其中访问各种工作环境,在这些环境中,他们可以访问多个工作空间。
关于工作环境,用户可以是“管理员”或“工作者”。这决定了用户是否能够在该环境中创建工作空间。
另一方面,工作区可以是“公共”或“私有”的.公共工作区可以由该环境中的任何用户访问,而私有工作区只能由创建所述工作区的管理员设置的授权用户访问.
我发现在这种情况下很难定义数据库模式,我考虑创建两个集合来定义用户和工作空间/工作环境之间的关系(UserId
和WorkspaceId
或EnvironmentId
),但我不确定这样分离是否正确,因为工作空间访问也取决于他们的工作环境访问。
顺便说一句,这是我第一次使用MongoDB,所以可能我不太理解这里的关系是如何工作的。
1条答案
按热度按时间42fyovps1#
我以前从未使用过ASP.NET,但您可以通过使用查询
agregation
.reff执行lookup
来联接2个或更多集合:$lookup (aggregation)您还可以在
$lookup
中进行过滤,等等。我创建了一个如何处理类似示例数据的示例(
UserId
和WorkspaceId
或EnvironmentId
)MONGO PLAYGROUND