0

Microsoft が多数の CD を所有しており、各 CD の場所を (履歴を含めて) 追跡する必要があるとします。

したがって、おそらく次のCDsようなテーブルがあります。

CD_ID  | title | ...
_________________________
  ...  | ...   | ...

そして、 " moves" を表す別のテーブル:

CD_ID  | dateMoved | DestinationCountryID |
___________________________________________
  ...  |   ...     | ...

そして、ここに私の問題があります:

Microsoft が cdYの現在の場所を知りたがっている場合:

movesテーブルをスキャンして、最後のcounty.

しかし(そしてここに私の質問があります):

私の頭の中の何かCDsが、次のようになるようにテーブルに列を追加する必要があることを教えてくれます:

CD_ID  | title | CurrentCountryID | ...
________________________________________
  ...  | ...   |          ...     | ...  

そのため、Cd アイテムごとにより説明的になります。(そして見つけやすい)。

CurrentCountryID、移動ごとに更新されます。

しかし

これにより、冗長なデータが発生します。

現在、現在の場所を表す場所が 2 つあります。

私は正しいですか?この列を追加する必要がありますか?

(数量についてお尋ねする場合は注意してください: 何百万もの CD があるとしましょう)

4

1 に答える 1

2

何をすべきかは、ニーズによって異なります。現在の国を頻繁に検索し、パフォーマンスを向上させる必要がある場合は、現在の国を CD テーブルに追加します。そうしないと、毎回 moves テーブルにクエリを実行して最大日付を取得する必要があり、パフォーマンスがあまり良くありません。

一方、その情報がほとんど必要ない場合は、それを正規化し、ムーブ テーブルだけに残します。

于 2013-10-06T07:39:14.417 に答える