Oracleを使用しています。複数の表の順序オブジェクトを使用して結合時の問合せ性を保証する
キャット(CAT_ID、cat_name、cat_age、cat_strength)
犬(dog_ID、dog_name、dog_age)
時々私は1つのクエリの結果に、すべてのペットを取得する必要があります:私は2つのテーブルを持っています。私はcatとdogテーブルの両方で使用できるanimal_seqシーケンスを作成することを考えていたので、テーブル間でIDが重複しないようにして、結合されたときに簡単に検索/照会できます。
この悪い習慣ですか?もしそうなら、なぜですか?テーブルを設計するより良い方法がありますか(例えば、ただ1つのAnimalテーブル、または複数の継承)。個人的には、ジョインのパフォーマンス上の問題のために継承を避けようとしています。
猫にはスクラッチポールテーブルへの外部キーがあります(私はこのすべてをbtwにして、無実を守るために名前を代用しています)。犬は犬のケンネルテーブルに外来キーを持っています。所有者(ペットの)は、犬舎やスクラッチポールを購入することができます。 – BobTurbo
ええと...これは、ANIMALテーブル、PRODUCTテーブル、およびANIMAL_PRODUCT_XREFテーブルがあると考えられます。 ANIMAL_PRODUCT_XREFは、ANIMAL_IDをPRODUCT_IDに結合する相互参照テーブルです。この方法で、複数の動物が複数の製品を利用できるようになります。 –