2016-06-13 3 views
1

今度は、DevicesとSystemsという2つのテーブルがあります。 デバイス - すべてのマウス、CPU、キーボード、モニタ、プロジェクタなどに関する情報が含まれています。基本的には、IT企業のオフィスにあるすべてのものです。属性は(device_id [primary key]、in_office_since、assigned_to)2つのテーブルのマッピング

システム - これは基本的にデバイスの集合です。例として、マウス、CPU、モニターが一緒に1つのシステムを形成します。

システムには、任意の数のデバイスを入れることができます。例えば、それはCPUとプロジェクターだけで構成することができます。 システムの属性は、(system_id [@GeneratedValueを使用してhibernateによって自動生成される]、device_id_1、device_id_2、...)です。ここで、device_id_1と同様に名前が付けられた列は、DevicesテーブルまたはDevicesテーブル内のdevice_isを参照する外部キーです。

システムごとに1対多の関係があります。

ここでは、テーブルの1つに可変数の属性がある上記のマッピングを行う方法を理解できません。

答えて

0

通常の1対多の関係として設計する必要があります。だから、

はあなたdevicesの表は、必要があります:

  • device_id(PK)、NULL可能systemsテーブルを参照する
  • in_office_since
  • assigned_to
  • system_id(FK与えられたデバイスの場合任意のシステムの一部ではありません)

とあなたのsystemsテーブル:

  • system_id(PK)
  • ...

そのように、あなたは、任意の数のデバイスで構成されたシステムを持つことができます。これは、一対多の関係を設定する正式な方法であり、Hibernateとマッピングするのは簡単です。

関連する問題