【发布时间】:2016-11-29 19:31:38
【问题描述】:
首先,我花了一些时间思考这个问题是否属于SO,所以如果您认为它更适合其他Stack Exchange站点,请随时推荐或迁移。
我正在编写一个 REST 应用程序,它将能够注册新用户并允许现有用户相互交互(例如,您可以想象一个论坛或一个简约的社交网络)。
目前,我有一个简单的应用程序设置,其中包含数据库架构、spring-JPA 和 spring-data-rest 公开所有存储库。
但是,所有用户现在都可以从服务器访问所有资源。我希望用户只看到他自己的实体:例如通过转到 /api/user/messages。
我还将在应用程序中使用一些安全性,可能是 OAuth2,所以我需要它兼容。
我已阅读有关此主题的一些文章和 SO 问题,并决定 多租户 可能是我的问题的解决方案。通常,这些文章为每个客户端和较少数量的客户端使用单独的数据库,所以我很好奇它是否真的打算用于系统中的大量用户。我希望所有用户都与他们的记录共享数据库并使用相同的架构。
这个主题是否有一些关于 Spring Boot 和共享数据库模式的教程?或者有没有更好的方法来解决这个问题?我很乐意提供任何提示!
编辑:正如 cmets 中所指出的,对于这项任务来说,使用多租户可能有点过头了,因为我只需要在实体级别上分离用户。对于如何在 Spring Boot 和 JPA 中执行此操作的任何提示,我将很高兴,因为我没有找到有关此主题的教程。
【问题讨论】:
-
您不需要多租户,您只需在数据库查询中为当前用户添加一个条件,这些条件在调用这些 REST 端点时执行。
-
@dunni 你可能是对的,我更新了我的答案。不过,我仍在努力如何实现这样的事情
-
看看这个链接是否有帮助。 stackoverflow.com/questions/23640487/…
标签: rest jpa spring-boot multi-tenant