gpt4 book ai didi

symfony1 - 使用 Doctrine 在 Symfony Multi-Tenancy 应用程序中进行数据分离

转载 作者:行者123 更新时间:2023-12-01 13:06:37 24 4
gpt4 key购买 nike

我正在尝试实现一个 Multi-Tenancy 应用程序,即
- 单个数据库中所有客户端的数据
- 每个共享表都有一个 tenant_id分隔数据的字段

我希望通过添加where('tenant_id = ', $user->getTenantID())来实现数据分离{伪代码}
到所有 SELECT 查询
我无法预先找到任何解决方案,但这是我正在考虑的可能方法。
1) 粗略的做法:
全部定制 fetchAllfetchOne每个类(class)的功能(我会发疯的!)
2)使用监听器:
可能为 preDqlSelect 编码事件并将“where”添加到所有查询
3) 覆盖 buildQuery (): 在前端找不到这样的例子
4) 实现 contentformfilter : 再次需要一个指针

如果有人可以验证这些并评论效率、适用性,我们将不胜感激。
此外,如果有人使用另一种策略实现了 Multi-Tenancy ,请分享。谢谢

最佳答案

我正在通过对 preDqlSelect 事件进行编码来使用 Doctrine Record Listeners 制定解决方案。我认为这是以通用方式做事的最佳和最简单的方法,而不必修改每个 Table 类并编写租户感知查询。有了监听器, Multi-Tenancy 将对开发人员完全透明。

感谢您的参与。

关于symfony1 - 使用 Doctrine 在 Symfony Multi-Tenancy 应用程序中进行数据分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2651238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com