我正在尝试实现一个多租户应用程序,即
- 所有客户的数据存储在单个数据库中
- 每个共享表都有一个
我希望通过向所有SELECT查询添加
如果有人能够验证这些并评论其效率和适用性,我将不胜感激。 此外,如果有人使用其他策略实现了多租户,请分享。谢谢
tenant_id
字段来区分数据我希望通过向所有SELECT查询添加
where('tenant_id = ', $user->getTenantID())
{伪代码}来实现数据分离。
我找不到任何解决方案,但这里有可能考虑的方法。
1)粗暴的方法:
在每个类中自定义所有fetchAll
和fetchOne
函数(我会疯掉!)
2)使用监听器:
可能编写preDqlSelect
事件的代码,并将“where”添加到所有查询中
3)覆盖buildQuery
():找不到前端的示例
4)实现contentformfilter
:同样需要指针如果有人能够验证这些并评论其效率和适用性,我将不胜感激。 此外,如果有人使用其他策略实现了多租户,请分享。谢谢