1

解決できないように見える問題があります。私はテーブルを持っています:ソフトウェアとテーブル:PC

両方とも相互に多対多の関係があります。つまり、1 台の PC に複数のソフトウェアを含めることができ、1 つのソフトウェアに複数の PC を含めることができます。リンク テーブルは次のとおりです。soft-pc

テーブル soft-pc には、プロダクト キーなどのライセンス情報もあります。

ここでの問題は、ソフトウェアが PC から削除されると、レコードが soft-pc テーブルから削除されることです。ここで、PC からソフトウェアの関連付けを解除し、soft-pc テーブルに保持できるようにしたいと考えています。

それは可能ですか?

4

2 に答える 2

2

今、私はPCからソフトウェアの関連付けを解除し、それでもそれらをsoft-pcテーブルに保持できるようにしたいと考えています。

これが問題の核心です。現時点では、soft-pcテーブルの関係述語(つまり、このテーブルに特定のレコードがあることの意味)は、問題のソフトウェアが問題のPC上にあることを意味します。そのPCにそのソフトウェアがないときに、このテーブルにレコードが存在する可能性があると言いたい場合は、新しい関係述語が何であるかを決定する必要があります。つまり:

テーブルにレコードがあるとはどういう意味ですかsoft-pc

于 2010-09-15T19:30:24.003 に答える
1

リレーションシップからカスケード削除を削除する必要があります。その後、次の 2 つの可能性が考えられます。

  1. ソフトPCに削除日を追加
  2. PC ID を別の列に移動します。これは、一意のキーが PCID + ソフト ID でない場合にのみ機能します。

私は#1に行く傾向があります。

追加投稿を編集

必要に応じて、可能なすべての PC-Soft の組み合わせと、ソフトウェアがインストールされているか、アンインストールされているか、インストールされていないかなどを示すコードと、ステータスが発生した日付を含むジャンクション テーブルを作成できます。このアプローチについては、言いたいことがたくさんあります。

于 2010-09-15T13:44:16.857 に答える