我有一个由许多组织共享的数据库(一个多租户的场景)。
我希望确保授权用户只能查看单个组织的数据,而无需每次都对此类约束进行明确编码。
LightSpeed有什么好的方法可以做到这一点吗?
一种可能的解决方案是为每个租户提供单独的表,即以某种租户标识符为前缀的表。
例如,如果你有一个客户表,你可以在它前面加上租户名称
Client1_Customer
Client2_Customer
Lightspeed有一个名为DefaultNamingStrategy的内置命名策略,它可以用您自己的INamingStrategy实现来取代。您所需要做的就是实现GetTableName,这样您就可以识别当前租户并选择相应的表名。
我在LightSpeed中发现了一个很棒的功能,叫做QueryFilterAttributes。我可以创建一个组织查询过滤器属性,让组织ID被注入到查询中,就像LightSpeed的原生软删除一样。
非常光滑。