如何在oracle对象中使关系1到n和n到n?关系在oracle对象中?
回答
[编辑]相信的问题是指甲骨文对象为OLE(OO40)/编辑]
对于这个例子,考虑顺序和LINE_ITEM之间的一对多的关系。 (一个订单可能有零个,一个或多个line_item,并且一个line_item只与一个订单关联)。我们跳过所有的建模步骤,并获得定义可能的外观。
一种选择是使用一个参考:
create type order_typ as object
(id integer
, ...
);
create table order_obj_table of order_type;
create table line_item
(order_ref ref order_typ scope is order_obj_table
, ...
);
另一种替代方法为使用一个嵌套表(称为集合型):
create type line_item_typ as object
(id integer
, ...
);
create type line_item_collection_typ as table of line_item_typ;
create type order_typ as object
(id integer
, line_items line_item_collection_typ
, ...
);
[编辑]
附件:
托尼安德鲁斯问(相当合理)为什么人们想要使用“嵌套表”。 Tony指出,由此产生的数据库结构将“难以访问”,他表示(我认为)所需的查询结构是“非标准”SQL。
非常坦率地说,我想不出一个好的理由,我会使用嵌套表,但我必须至少承认,OO4O确实提供了对嵌套表的支持。
为什么要选择使用OO4O呢?它通过本机驱动程序提供(表面上)针对Oracle数据库的改进性能,避免了由ODBC或OLE引起的开销。它也是专门针对Oracle的技术,针对OO4O界面编写应用程序意味着应用程序将基本上与Oracle数据库绑定,如果没有要求应用程序支持多个(可互换)的数据库引擎,则该应用程序可能没有问题。
更多信息和用于OO4O实例可从Oracle网站:
http://www.oracle.com/technology/tech/windows/ole/index.html
[/编辑]
太棒了,但您可以使用第二个替代方案发送示例吗? – 2009-06-02 04:24:08
除非'Oracle Objects'是某种产品(大写字母有助于区分普通单词和产品名称),否则您的操作方法与您在其他任何DBMS中的操作方法相同。
对于1:n的关系:
CREATE TABLE Master
(
PK_Column <sometype> NOT NULL PRIMARY KEY,
...
);
CREATE TABLE Detail
(
FK_Column <sometype> NOT NULL REFERENCES Master,
OtherColumn <anothertype> NOT NULL,
PRIMARY KEY (FK_Column, OtherColumn),
...
);
对于n:M关系:
CREATE TABLE TableN
(
N_Identifier <sometype> NOT NULL PRIMARY KEY,
...
);
CREATE TABLE TableM
(
M_Identifier <anothertype> NOT NULL PRIMARY KEY,
...
);
CREATE TABLE CrossRef
(
N_Identifier <sometype> NOT NULL REFERENCES TableN,
M_Identifier <anothertype> NOT NULL REFERENCES TableM,
PRIMARY KEY (N_Identifier, M_Identifier),
...
);
的SQL语法是或多或少DBMS中性(它应该劈出关闭SQL标准句法)。
- 1. Oracle对象关系添加方法
- 2. 对象关系
- 3. Oracle Forms多对多关系
- 4. 对象图关系
- 5. Javascript对象关系
- 6. KVO对象在多对多关系中的对象属性
- 7. 抓取关系的关系对象
- 8. C中的多对多关系对象#
- 9. 在SQLAlchemy中以多对多关系关联对象
- 10. Django - 在一对多关系中更改相关对象的值
- 11. Oracle中的NHibernate关系
- 12. 地图关系对象
- 13. 对象关系设计
- 14. 对象/关系映射
- 15. 对象断层 - CoreData关系
- 16. 对象关系模型(ORM)
- 17. 循环对象关系Laravel
- 18. 灵活的对象关系
- 19. Javascript对象依赖关系
- 20. 创建关系类对象
- 21. 与对象的关系
- 22. 对象关系映射
- 23. iphone亲子对象关系
- 24. 对象的MongoDB关系
- 25. 管理对象间关系
- 26. ARC:对象 - 代表关系
- 27. 访问关系对象(CoreData)
- 28. Oracle可选关系
- 29. 在Oracle 9i中显示外键关系
- 30. 从多对多关系中选择对象并收集对象
很好的例子:http://download.oracle.com/docs/ cd/B14117_01/appdev.101/b10799/adobjxmp.htm#i439604 – 2010-08-17 06:31:05