0

Class と Student の 2 つのテーブルがあり、これらは 1 対多の関係にあります。クラスと複数の生徒に必要なデータを提供するだけでよいので、クラスの追加は簡単で、削除も簡単です。

しかし、クラスを更新したいとき、問題が発生します。更新の場合、Class 自体の属性の変更以外に、Student に対する追加、変更、削除などの操作が必要になる場合があります。更新を適切に行うために、すべての潜在的な情報を提供するには、データをどのように整理すればよいですか?

インターネットで検索した後、上記の問題を解決する解決策を得ました。削除と追加を組み合わせて、更新をシミュレートします。それは機能し、非常に簡単です。しかし、頻繁にレコードを追加および削除すると、2 つの問題が発生する可能性があります。自動インクリメンタル主キーの非効率性とサイズ制限です。

だから、私の問題を解決するためのより良い(または典型的な)方法があるのだろうか?または、上記の解決策を採用した場合、副作用、特に自動増分主キーのサイズ制限を回避するにはどうすればよいですか?

どうもありがとう!

4

1 に答える 1

0

通常のアプリケーションでは、クラスとその生徒を一度に更新することはありません。クラスを更新するか、生徒を追加するか、生徒を削除しますが、すべてを一度に削除するわけではありません。

たとえあなたがそれをしなければならなかったとしても、解決策はあなたのアプリのアーキテクチャ、データベースにアクセスするために使用されるフレームワークなどに依存するでしょう、それで決定的な答えを与えるのは難しいです。たとえば、JPAまたはHibernateを使用すると、オブジェクトのツリー全体を変更してマージすると、すべてが自動的に処理されます。

自分でやらなければならない場合は、更新されたクラスを更新された学生と一緒に送信するだけです。まず、クラス自体の情報を更新します。次に、生徒にループして、自分の情報を更新します。次に、現在クラスに参加している生徒(データベース内)と送信された生徒に参加している生徒を確認し、消えた生徒を削除します。

学生を削除して再作成することは、ほとんどの場合、非効率的であるため、またはIDを使い果たすため(長い間2 ^ 63になりますが、これは巨大です)ではなく、外国のキーが指している他のテーブルがあるためです。更新する学生に。

于 2012-12-01T15:23:40.580 に答える