4

従業員テーブルとジョブ リスト テーブルがあるとします。各従業員は、テーブルに 1 つのジョブを持っている必要があります。通常、私は各ジョブに ID を与え、それを従業員テーブルの外部キーとして参照します。しかし、私の同僚の 1 人は、ジョブ リスト テーブルを辞書として使用し、挿入/更新する前に「ジョブ タイプ」がテーブルに存在することを確認してから、ジョブ タイプを文字列として従業員テーブルに挿入することを提案しました。

私が見る限り

長所:

より高速な選択 (ただし、主キーでの結合はわずかな違いを生むはずです)

短所:

職種別の社員選定が遅い 職種
変更が難しい

上記のアプローチのどれが最適ですか?

4

2 に答える 2

6

競合が発生する理由を理解しているかどうかはわかりません。主キーと外部キーの両方が、数値型と同じくらい簡単に文字列型になることをご存知ですか? ジョブ タイプ フィールドをジョブ タイプ テーブルの主キーにし、従業員テーブルの外部キーにすることで、両方のシステムの利点を得ることができます。

このアプローチの利点は、データベースを使用してデータベースにとって重要な参照整合性を提供しながら、ジョブ タイプのわかりやすい名前を取得するためにジョブ タイプ テーブルを従業員テーブルに結合する必要がないことです。デザイン。

短所は、非常に多くの従業員がいる場合、もう少し多くのストレージ リソースを使用することと、ジョブの説明を変更する場合、employee テーブルを介して変更をカスケードする必要があることです。

整数を主キーとして使用することは一般的ですが (一部のフレームワークではそれが必要です)、そうしなければならないというルールはありません。

于 2012-07-23T03:11:38.393 に答える
1

ジョブ タイプの管理がより困難になる場合 (これは、あなたまたは他の誰かが行うことになると思います)、わずかなパフォーマンスの向上のために本当に価値があるでしょうか? また、小さな報酬のために物事を過度に複雑にしているようにも思えます. 簡単にするために、外部キーを使用することをお勧めします。

于 2012-07-23T02:48:47.247 に答える