私はハイバーネイトでオンラインライブラリーを実装したいと考えています。ここに私のSQL sschemaは次のとおりです。オンラインライブラリー/ショップ設計実装の選択のための休止状態継承
ブックと私が参加し、サブクラスごとのタイプのテーブルの継承を休止状態使用を考えていますプログラミングブックの間。私は10列のテーブルに同じ列が重複しているという点がないので、この方法でSQLスキーマを設計しました。たぶん、一般的な列を1つ追加する必要があるかもしれません。私は10個のテーブルでそれをしたくありません。しかし、これは、Bookがどこかで必要とされるときは、すべてのサブタブ間で巨大な結合が行われることを意味します(私は2つしかありませんが、50種類のブックタイプがあります!!!)。例えば、私がオンラインショップを持っていたら、私はProduct、Tv、Laptop、Phoneなどを持っていただろう。
この動作を回避するためにどのような設計が可能ですか?
私の考えは以下のとおりです。
- 私はすべてのサブテーブル内のすべての列を複製でき、ひいては、まったく継承を使用していない、異なるエンティティのようにそれらを扱います。ここで唯一のことは、他のテーブル(著者など)の特定のブックテーブルを結ぶ必要があることです。
- 私は現在のSQLスキーマを維持しながら一方向の関連付けを使用することを避けることができました(ProgrammingBookにはBookなどがあります)
どのようなオプションをお勧めしますか?
敬具、経験から
「ここだけの事は、私は他のテーブル(著者、など)のすべての特定帳テーブルを結ぶために持っているということである」ことができます詳細は、してください? :) – davidxxx
あなたが今すぐ見ることができるように、作者へのProgrammingBookの関係は本を通してです。もし私が各テーブルの列を複製するならば、ProgrammingBookは著者などと結びつけられなければならず、PsychologyBookは作者などとの関係を持つ必要があり、それぞれの本のために同じである必要があります – adragomir
それは私のものでした。ありがとうございます – davidxxx