1

私はデータベースを設計していますが、このテーマの経験があまりないため、解決方法がわからない問題に直面しています。

私の概念モデルでは、顧客が注文し、在庫システムが監視する「車両」と呼ばれるオブジェクトがあります。このスーパータイプには、「Motorcar」と「Motorcycle」の 2 つのサブタイプがあります。ユーザーは、どちらか一方、または両方を注文できます。

論理設計段階にあるので、システムで 2 つの異なるタイプの製品を使用できるようにする方法を知る必要があります。私が抱えている問題は、各オブジェクトの個別の属性を同じ関係に入れると、一部のオブジェクトには役に立たない列ができることです。

たとえば、「Vehicles」と呼ばれる「Motorcars」と「Motorcycles」の両方とそのすべての属性を保持する汎用テーブルがある場合、車にはオートバイの属性の一部は必要なく、オートバイにはすべての属性は必要ありません。車の属性。

この問題を解決する方法はありますか?

4

1 に答える 1

3

決定は、共有される情報の量によって導かれる必要があります。すべての属性とそれらに関するルールを特定することから始めます。

大部分の情報が共有されている場合、複数のテーブルに分割することはできません。一方、使いやすいように、いつでもテーブルを分割してビューに結合できます。

たとえば、情報を共有するだけの車両テーブルがあり、その後、車両テーブルへの外部キーを持つ自動車テーブルと、車両テーブルへの外部キーを持つオートバイ テーブルがあるとします。自動車の行とオートバイの行が同じ車両を参照していないことを確認するのは一定の困難があるため、それを緩和する他の方法があります。単一の vehicle テーブルに未使用の列があります。制約を適用して、入力してはいけない型の列を NULL にすることもできます。

于 2011-08-14T01:33:39.387 に答える