Wie man die Beziehungen 1 zu n und n zu n in Orakel-Objekten macht?Relationen in Orakel-Objekten?
Antwort
[EDIT] Ich glaube, die Frage für OLE zu Oracle Objekte bezieht (OO40) [/ EDIT]
Für dieses Beispiel betrachten wir eine Eins-zu-viele-Beziehung zwischen Ordnung und LINE_ITEM. (Eine Bestellung kann null, ein oder mehrere line_item haben, und ein line_item ist genau einer Bestellung zugeordnet.) Wir springen über alle Modellierungsschritte hinweg und gelangen zu einer Shell, in der die Definitionen aussehen könnten.
Eine Möglichkeit ist es, eine Referenz zu verwenden:
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
, ...
);
Eine weitere Alternative es eine verschachtelte Tabelle zu verwenden (eine Sammlung Typ genannt):
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
, ...
);
[EDIT]
Nachtrag:
Tony Andrews fragt (ziemlich vernünftig), warum man "geschachtelte Tabellen" verwenden möchte. Tony weist darauf hin, dass die resultierenden Datenbankstrukturen "schwerer zugänglich" sein werden, womit er (denke ich) meint, dass die benötigten Abfragekonstrukte "nicht-standardmäßiges" SQL sind.
Ehrlich gesagt, ich kann mir keinen guten Grund vorstellen, dass ich eine verschachtelte Tabelle verwenden würde, aber ich muss zumindest anerkennen, dass OO4O Unterstützung für verschachtelte Tabellen bietet.
Warum sollte man sich überhaupt für OO4O entscheiden? Es bietet (scheinbar) eine verbesserte Leistung gegenüber einer Oracle-Datenbank, dank eines nativen Treibers, der den durch ODBC oder OLE verursachten Overhead vermeidet. Es ist auch eine Technologie speziell für Oracle, das Schreiben einer Anwendung gegen die OO4O-Schnittstelle bedeutet, dass die App im Wesentlichen an eine Oracle-Datenbank gebunden ist, was in Ordnung sein kann, wenn die App nicht mehrere (austauschbare) Datenbank-Engines unterstützen muss.
Weitere Informationen und Beispiele für OO4O sind von Oracle-Website zur Verfügung:
http://www.oracle.com/technology/tech/windows/ole/index.html
[/ EDIT]
großartig, aber könnten Sie ein Beispiel mit der zweiten Alternative senden? –
Beispiel für eine Frage –
Warum möchten Sie das tun? Geschachtelte Tabellen sind keine gute Idee in der Praxis - sie werden unter dem Deckmantel als normale Tabellen gespeichert, aber auf eine Weise, die sie schwerer zugänglich macht. –
Wenn 'Oracle Objects' kein Produkt irgendeiner Art ist (Großbuchstaben helfen, gewöhnliche Wörter von Produktnamen zu unterscheiden), dann tun Sie es genauso wie in jedem anderen DBMS.
Für eine 1: n-Beziehung:
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),
...
);
Für eine n: m-Beziehung:
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),
...
);
Die SQL-Syntax ist mehr oder weniger DBMS-neutral (es sollte den SQL-Standard haute schließen Syntax).
- 1. Verschachtelte Relationen mit Sequelize
- 2. Zusammensetzungen in Fuzzy-Relationen - MATLAB/Python
- 3. Wie verschachtelte Relationen in RoR verwaltet werden?
- 4. In yii2 Wie rufen wir durch Relationen
- 5. Wie schreibe ich mehrere Relationen in Yii2?
- 6. wie Relationen viele zu viele in redis
- 7. Rails: Mimic Relationen in tableless ActiveRecord
- 8. AttributeError bei Verwendung verschachtelter Relationen
- 9. Association_proxy mit 0-n Relationen
- 10. Zugriff auf Schematabellen und -relationen im Ruhezustand
- 11. Weka Machine Learning: ARFF-Datei: multiple Relationen
- 12. So entfernen Sie Relationen von Entitätsframework
- 13. Django: Liste aller umgekehrten Relationen eines Modells
- 14. Spring Data NEO4J: Relationen haben Nullwerte
- 15. Wie man Relationen im Postgres-Schema auflistet
- 16. Zend_Db_Table "wo" für Relationen? und Regionen:
- 17. laravel5.2 Modell mit allen Relationen löschen
- 18. Visiualisieren und analysieren Relationen von Klassen in C++ Projekt
- 19. Hinzufügen where-Klausel zu Relationen Tabelle in Laravel
- 20. Wie erhalten Sie Werte aus verschachtelten Relationen in Power Pivot?
- 21. Wie zeigen viele Relationen in Yii2 GridView und DetailView?
- 22. Fehler beim Laden von Relationen in Ember 2
- 23. Mit linq, Datenbank hat keine FK Relationen zu Tabellen
- 24. meta_query, wie wird mit beiden Relationen OR & AND gesucht?
- 25. Neo4j Cypher-Abfrage, um an mehreren Relationen zu arbeiten
- 26. Sind JOINs und eine zu viele Typ Relationen verwandt?
- 27. Entitätsframeworkfunktionsimport, kann keine Relationen für Funktionen laden, die Entitätstypen zurückgeben
- 28. Hibernate-Entity mit mehr als einer Eigenrelation (rekursive Relationen)
- 29. Wie man Rails verwendet act_as_sortable gem, mit mehreren relies_to-Relationen
- 30. Verketten von ActiveRecord :: Relationen, die durch polymorphe Assoziation abgefragt wurden
schönes Beispiel: http://download.oracle.com/docs/ cd/B14117_01/appdev.101/b10799/adobjxmp.htm # i439604 –