0

Oracle 10g Express を使用してオブジェクト リレーショナル データベースを実装し、電話請求データを追跡する必要がある宿題があります。Call、Text、および Data のサブクラスを持つ Communications のスーパークラスがあります。さまざまなテーブルで適切なデータを見つけることができるように、これらのテーブルに適切にデータを入力することに問題があります。

私のタイプとテーブルは次のように宣言されています。

create type CommunicationType as object (
  -- column names here
) not final;
create type CallType under CommunicationType (
  -- column names here
);
create type TextType under CommunicationType (
  -- column names here
);
create type DataType under CommunicationType (
  -- column names here
);
create table Communications of CommunicationType (
  -- Primary and Foreign key constraints here
);
create table Calls of CallType;
create table Texts of TextType;
create table Datas of DataType;

サブクラスの 1 つにデータを入力しようとするとinsert、そのエントリがスーパークラスに表示されません。同様insertに、スーパークラスに入ると、適切なサブクラスには表示されません。たとえばinsert into Calls values (CallType( -- Values -- ));、Communications にはデータが表示されません。insert into Communications values (CallType( -- Values -- ));通話にも何も表示されません。

私は何を間違っていますか?

4

1 に答える 1

1

4 つの個別のテーブルを作成しました。1 つのテーブルに行を挿入した場合、その行が別のテーブルに表示されることを期待する理由はありません。

テーブルは に基づいておりCallType、から構造と動作TextTypeDataType継承してCommunicationTypeいますが、これはデータが複製されていることを意味するものではありません。おそらくテーブルはまったく必要ないと思いますCommunications

<余談>個人的には、私が Oracle データベースを使用している場合は、オブジェクト型を使用するのを完全にやめて、純粋なリレーショナル モデルを使用してモデル化するだけですが、それはおそらく私だけです。 「オブジェクトリレーショナル」データベースを実装することを期待してください... :)

于 2010-06-15T00:44:22.807 に答える