我有一个由许多组织共享的数据库(多租户方案)。
我想确保授权用户只能查看单个组织的数据,而无需每次都明确编码这样的约束。
LightSpeed是否有一个很好的方法来做到这一点?
答案 0 :(得分:3)
一种可能的解决方案是为每个租户提供单独的表,即以某种租户标识符为前缀的表。
例如,如果您有一个客户表,则可以在其前面加上租户名称
Client1_Customer
Client2_Customer
Lightspeed有一个名为DefaultNamingStrategy的内置命名策略,可以用您自己的INamingStrategy实现替换。您需要做的只是实现GetTableName,以便您可以识别当前租户并选择相应的表名。
答案 1 :(得分:1)
我在LightSpeed中发现了一个名为QueryFilterAttributes的强大功能。我可以创建一个组织查询过滤器属性,它可以将组织ID注入到查询中,就像LightSpeed的本机软删除一样。
非常光滑。