1

DBに同じユーザー情報を使用して2つのJavaアプリケーションを作成するのが好きですが、一部のユーザー関連情報はアプリAにのみ関連し、その他の情報はアプリBにのみ関連します。

私の質問は、Aのユーザークラスを記述してBのフィールドを無視することはできますか、またはその逆はできますか?

または、フィールドを怠惰にロードし、使用することのないフィールドをそのままにしておくための正しいアプローチはありますか?それはメモリ内のより大きなオブジェクトにつながりますか?

または、情報を冗長に保存し、必要に応じて両方のテーブル/データベースで更新する方がよいでしょうか?

長所と短所、またはエラーにつながる可能性のあるものを教えてください。

これが重要な場合は、eclipselinkとpostgresを使用します。

thx @Vikdorしかし、あなたの答えは私の頭の中でより多くの質問を成長させます:)

  1. それで、あなたの答えの主な声明は、私がテーブルの条件に違反しない限り、問題はないということですよね?

  2. 少なくとも1つのアプリ、場合によっては両方が、大量のユーザーによって頻繁に使用されているとします。パフォーマンスの問題を防ぐために、冗長な情報を保存する方がよいでしょうか。
    または、A / B固有の情報を、電子メールのようにユーザーを識別する値を使用して別のオブジェクト/テーブルに保存することをお勧めします。これにより、A固有のデータを持つA用に1つ、B用に1つのDBが3つあります。 B固有のデータと基本的なユーザー情報(メール、pw、ユーザー名など)用のデータを使用しますか?

4

1 に答える 1

0

アプリケーションが関連するUserテーブルからの情報のみを読み取る限り、特定のアプリにとって意味のある属性のみを使用してエンティティを定義することは問題ありません。

ただし、これらのアプリケーションのいずれかを使用して新しいユーザーレコードを作成する場合は、ユーザーのnull許容でないすべての属性を使用してエンティティを定義する必要があります。そうしないと、データベース層で挿入が失敗します。

メモリ内のオブジェクトのサイズに関して、ユーザーテーブルが非常に大きく、ほとんどの属性を使用せず、読み取り操作のみを実行する場合、これは、ユーザーエンティティをのみで定義するための最適化として適している可能性があります。必要な属性。

于 2012-11-06T05:03:57.117 に答える