我更习惯于PostgreSQL世界,现在正与Oracle斗争。
我有多个带有Spring Boot的微服务,这些服务使用Flyway进行数据库迁移。使用PostgreSQL,我将为每个微服务(例如createdb -O microservice1_user microservice1
和createdb -O microservice2_user microservice2
)创建一个“数据库”,以使表不会冲突,并且每个微服务都有自己的flyway_schema_migration`表。
我现在可以访问一个 Oracle服务器。我具有管理员访问权限(如果我没有记错-我有一个owner
和一个support user
帐户)。
最佳做法是什么?是否可以为每个微服务创建等效的“数据库”(我认为它们在Oracle中是“方案”?每个模式也是用户?)?我需要给表加上前缀(我真的想避免这种情况)吗?
谢谢!
答案 0 :(得分:0)
SCHEMA和USER在Oracle中实际上是同义词-因此,是的,您的每个数据库都可以在Oracle中表示为SCHEMA。
但是,如果授予用户privs,则将允许他们查看其他架构中的数据。
如果您需要更严格的“分区”,则可以使用Oracle中的多租户功能。
然后,您将为每个微服务拥有一个单独的可插入数据库。每个数据库都可以具有一个或多个模式,但是它们将无法无意间或以其他方式访问另一个可插拔数据库中的数据。
我们有实现了两种建筑风格的客户,因此不一定有对或错的方式。
在单个数据库中使用多个模式显然是更简单的方法。