eid*_*lon 2 oracle schema oracle11g logical-grouping
我们正在为ORACLE 11g中的客户规划一个新系统.我已经在Sql Server世界中工作了好几年,而且最新的ORACLE更新并不是最新的.
我想知道ORACLE在这一点上添加的一个特殊功能是数据库对象的某种逻辑"容器",类似于Sql Server SCHEMA
.
尝试使用ORACLE的模式(如Sql Server)在尝试从dev> test> live中进行代码比较时会成为代码比较的灾难.
包有点类似,除了你不能将表放入包中(因此它们实际上只适用于逻辑代码分组).
我所知道的唯一其他选项是古老的做法,即必须在对象名称前加上"schema"前缀,即RPT_
REPORTS,RPT_
PARAMETERS,RPT_
LOGS,RPT_
USERS,RPT_
RUN_REPORT(),前缀RPT_
表示这些都是处理的对象我们的报告引擎说.编写这样的系统感觉就像我们从未离开8.3文件命名时代.
在这个时间点,是否有任何更清晰,更直接的方法将相关对象逻辑分组在ORACLE中?
Oracle的数据库对象的逻辑容器是架构.我不知道你能得到多少"清洁"和"更直接"!你将不得不在这里进行范式转换.不要试图用SQL Server术语来思考,并强制在Oracle上使用看起来像SQL Server的解决方案.熟悉Oracle的工作并从这个角度解决您的问题.如果您知道自己在做什么,那么在Oracle中从开发到测试再到生产应该没有问题.
当您使用诸如"古老的练习"之类的术语时,您似乎对Oracle有一点关注.我建议你通过做一些阅读与Oracle非常丰富和强大的功能集交朋友,因为你显然已经为这个项目致力于Oracle.特别是,请选择Tom Kyte撰写的"Effective Oracle By Design".阅读完之后,请查看同一作者的"Expert Oracle Database Architecture",以便更深入地了解Oracle的工作原理.您应该知道如何使用您已经交付过的工具.谁知道?你甚至可能会开始喜欢它.将其视为工具箱中的另一个工具.您没有与SQL Server结婚,并且您使用Oracle并不是不忠实;-)
编辑:
在回答OP提出的问题时:
我不确定为什么这是一个后勤问题.它们可以被认为是单独的数据库,但实际上它们不是.不,您不需要为每个架构单独的数据文件.单个数据文件通常用于所有模式.
如果你想要一个"漂亮,自包含的数据库"ala SQL Server,只需创建一个模式来存储所有对象.问题结束.您可以创建其他用户/模式,只是不要让他们能够创建对象.
有比较对象和数据的工具,如PL/SQL Developer比较.通常在Oracle中,您希望比较模式,而不是整个数据库.我不确定为什么你想拥有多个模式,每个模式都有自己的对象.你买这个是什么东西?将对象(表,触发器,代码,视图等)保存在一个模式中.
归档时间: |
|
查看次数: |
680 次 |
最近记录: |