繁体   English   中英

ORACLE中的逻辑分组模式?

[英]Logical grouping schemas in ORACLE?

我们正在为ORACLE 11g中的客户计划一个新系统。 我已经在Sql Server领域工作了很多年,但对最新的ORACLE更新并不是很了解。

我想知道此时是否添加了ORACLE的一个特殊功能是某种类似于数据库对象的逻辑“容器”,类似于Sql Server的SCHEMA

在尝试从dev> test> live进行推送时,尝试使用Sql Server之类的ORACLE模式对代码比较来说是一场灾难。

包有点相似,除了不能将表放入包中(所以它们实际上仅适用于逻辑代码分组)。

我知道的唯一其他选择是古老的做法,必须在对象名称前添加“模式”前缀,即RPT_ REPORTSRPT_ PARAMETERSRPT_ LOGSRPT_ USERSRPT_ RUN_REPORT() ,并且前缀RPT_表示这些是与我们的报告引擎打交道的所有对象。 编写这样的系统就像我们从未离开8.3文件命名时代一样。

到现在为止,是否有任何更干净,更直接的方法将ORACLE中的相关对象逻辑分组在一起?

Oracle用于数据库对象的逻辑容器就是模式。 我不知道你能得到多少“更清洁”和“更直接”! 您将不得不在这里进行范式转换。 不要试图用SQL Server的术语来思考,而应采用类似于Oracle上的SQL Server的解决方案。 熟悉Oracle的工作并从该角度解决问题。 如果您知道自己在做什么,那么从开发人员进行测试到在Oracle中进行生产应该没有问题。

当您使用诸如“过时的实践”之类的术语时,您似乎对Oracle有所了解。 我建议您通过阅读一些书来结识Oracle非常丰富而强大的功能,因为您显然已经致力于该项目的Oracle。 特别是,请获取Tom Kyte撰写的“ Effective Oracle By Design”的副本。 阅读完该文章后,请查看同一作者的“专家Oracle数据库体系结构”,以更深入地了解Oracle的工作方式。 您应该让客户知道如何使用您所使用的工具。 谁知道? 您甚至可能开始喜欢它。 将其视为工具箱中的另一个工具。 您并没有嫁给SQL Server,也没有因为使用Oracle而忠诚;-)

编辑:

针对OP的问题:

我不确定为什么这是后勤问题。 可以将它们视为独立的数据库,但实际上不是。 而且,您不需要为每个架构使用单独的数据文件。 单个数据文件通常用于所有架构。

如果您想要一个“漂亮的,自包含的数据库” ala SQL Server,只需创建一个架构即可存储所有对象。 问题结束。 您可以创建其他用户/方案,只是不要让他们具有创建对象的能力。

有一些工具可以比较对象和数据,如PL / SQL Developer比较。 通常,在Oracle中,您要比较架构而不是整个数据库。 我不确定为什么要使用每个对象都有自己的对象的多个架构。 请问您这样做是什么? 将您的对象(表,触发器,代码,视图等)保持在一个架构中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM