如何在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. 如何將此錶轉換爲Oracle中的面向對象表(對象關係)
- 5. 在關係依賴關係中堅持已存在的對象
- 6. Rails對象關係
- 7. 對象圖關係
- 8. Javascript對象關係
- 9. NSPredicate關係對象
- 10. 取關係對象
- 11. 在coredata中獲取關係對象
- 12. 在NSSet關係中刪除對象
- 13. KVO對象在多對多關係中的對象屬性
- 14. 抓取關係的關係對象
- 15. 在PostgreSQL中執行1:N關係(對象關係)
- 16. C中的多對多關係對象#
- 17. Django - 在一對多關係中更改相關對象的值
- 18. 在SQLAlchemy中以多對多關係關聯對象
- 19. 在父對象視圖中裝飾關係對象部分
- 20. 查找用戶對象,其中在的hasMany關係對象
- 21. 打印出對象關係表(Oracle)的結果
- 22. PostgreSQL和Oracle對象關係存儲與ORM相同嗎?
- 23. Oracle 11g XMLType對象關係存儲 - > XML模式驗證
- 24. Oracle中的NHibernate關係
- 25. 對象關係設計
- 26. 循環對象關係Laravel
- 27. Zend_Db_Select對象和N:N關係
- 28. 與對象的關係
- 29. 「對象」的關係覆蓋?
- 30. 對象斷層 - CoreData關係
很好的例子:http://download.oracle.com/docs/ cd/B14117_01/appdev.101/b10799/adobjxmp.htm#i439604 – 2010-08-17 06:31:05