1

作成する必要のあるデータベースには、車両追跡システムのデータが保持されています。そのため、いくつかの車両は、これらの値をデータベースに保存するデータ(約20個のパラメーター)を私のサイトに送信し続けます。

車両のパラメータには、車両番号とハードウェアIDが定数として含まれ、残りは変化し続けます。したがって、1台の車両から、これら2つのパラメーターは常に一定です。

このデータベースには、ユーザーのログインクレデンシャルを含む別のテーブルがあり、ログインテーブルの車両番号(主キー)とパラメーターを含むテーブルの車両番号を使用して、2つのテーブル間にリンクを作成します。

車両番号の列は冗長であるため、主キーとして使用することはできません。だから私が知りたいこと:

  1. テーブル間のリンクをどのように実現できますか
  2. この車両番号とハードウェアIDを何度も保存しないようにするための良い方法はありますか?
  3. 各車両のデータをすべて1つのテーブルに保存するのではなく、別々のテーブルに保存する必要がありますか?

PS:私はずっとプログラマーだったので、データベースを設計するのはこれが初めてです。良い提案を期待しています。

4

1 に答える 1

1

ログインクレデンシャルに車両番号を入れるのは非常に悪い考えかもしれません。あなたのユーザーが誰であるかはわかりませんが、車を売買したときにログインを変更せざるを得ないサイトは使いたくありません。そして、私の歴史はどうですか?私はそれをすべて失いますか?

主キーのビジネスロジックは、設計が悪いことを意味します。

代理主キーを作成し、それを使用して車両に参加します。1人のユーザーが多数の車両を所有している可能性があるため、外部キーをVEHICLEテーブルからUSERテーブルに配置します。

車両データを別のテーブルに配置することは、1:1の場合は役に立ちません。2つを除くすべての値が変更されているという事実は変わりません。

要件に変更の履歴の保持が含まれている場合は、このアイデアを再検討します。あなたはそれについて何も言及していないので、私はここで推測しているだけです。

あなたが提起した質問はどれも、効率やアプリケーションの速度に影響を与えることはありません。誰かがあなたのデザインに影響を与えることができるように、あなたは十分な詳細を与えていません。この時点で、時期尚早の最適化の罪を犯しています。

于 2012-09-17T10:33:17.243 に答える