追加的な属性が必要なサブクラスについては、1つのスーパークラス表のかわりに複数表を使用します。データベース内に未使用フィールドがないため、これによって記憶域が最適化されます。ただし、オブジェクトをインスタンス化する前にTopLinkでは複数の表を読み取る必要があるため、パフォーマンスに影響を与える可能性があります。TopLinkでは最初に、作成するオブジェクトのクラスを判断するためクラス・インジケータ・フィールドが確認されてから、サブクラス表から読み取るためそのクラスのディスクリプタが使用されます。
図4-21にはFUELEDVHCL
表、CAR
表およびBICYCLE
表のTopLinkにおける実装が示されています。すべてのオブジェクトがVEHICLE
表に格納されます。FueledVehicle
、Car
およびBicycle
情報は、副表にも格納されます。
図4-21 各サブクラスの個別表を使用する継承
NonFueledVehicle
には属性や関連が保持されていないため、副表は必要ありません。パフォーマンスという観点では、複数表のフェッチが必要となるためこの設計は非効率的です。
Copyright © 1997, 2006, Oracle. All rights reserved.