0

データを処理する方法を再設計するために、(組み込みの H2 データベースを使用して) Java アプリケーションの新しいリビジョンを設計しています。これが私が計画した方法です:

  • エントリー表
    • エントリーID
    • エントリー名
  • 特性表-
    • プロパティ ID
    • プロパティ名
  • (個別物件)値表-
    • 値 ID
    • エントリーID
    • (値列...)
  • (個人エントリー)値表-
    • プロパティ名
    • (個別プロパティ) 値 ID

各エントリには、複数のプロパティ (同じタイプの複数のプロパティを含む) を含めることができます。各プロパティには、値を格納する独自の方法があります。特定のエントリに対して定義されたすべてのプロパティを検索する必要があり、場合によっては、特定のプロパティごとにすべてのエントリを検索する必要があります。

これは良い方法ですか?

編集:うまく説明できたかどうかわかりません...

4

3 に答える 3

3

私の意見では、これはデータをモデル化するための非常に悪い方法ですが、実際にこのモデルを使用する必要がなかったため、これは状況を見る非常に象牙の塔の方法です。ちなみに、これは「Entity-Attribute-Value」アプローチと呼ばれます。そして、私がそれを嫌いな理由は、ほとんどの SQL 機能を何らかの方法で複製する必要があるという点で、非常にスキーマに似ていないためです。

それを行う時期と場所は間違いなくあります (異なるモデルを持つ多くのオブジェクトをモデル化する場合や、頻繁に変更されるスキーマを持つオブジェクトをモデル化する場合など)。でも個人的にはひどいと思います。

于 2009-05-19T19:19:04.290 に答える
1

私があなたを正しく理解していれば、あなたが説明したものの代わりに交差テーブルまたはジャンクションテーブルを使用します。

そのため、クエリを作成して、エントリごとにすべてのプロパティ、またはプロパティごとにすべてのエントリを取得できます。

于 2009-05-19T19:16:11.597 に答える
0

不明なGoogleに同意します。これは、内部プラットフォーム効果とも呼ばれます。

于 2009-05-19T20:11:55.867 に答える