0

従業員情報を含むテーブルの1つに主キーを割り当てる際に問題が発生しました。そのテーブルには一意の列はありません。残っている唯一のオプションは、3つの列の組み合わせを主キーとして使用することです。

  1. Warning! The maximum key length is 900 bytes. The index 'pk_hrempid' has maximum length of 1530 bytes.For some combination of large values, the insert/update operation will failしかし、これは将来データを挿入する際の大きな問題になることがわかったので、警告メッセージが表示されます。この警告の解決策はありますか?

  2. 他の質問は、自動インクリメント値を一意のIDとして入れることができますか?それは推奨されますか?他の部署の従業員情報が入ったテーブルがたくさんあるので、今後も問題ないようにしたいと思います。一部の従業員は2つ以上のテーブルにいる場合があります

どんな助けでも大歓迎です!

4

3 に答える 3

0

主キーの自動インクリメントタイプのソリューションを使用します。この種の目的で個人データを使用する場合の問題は、主キーの基本的な要件である一意性を保証できないことです。

于 2011-10-18T14:55:29.730 に答える
0

複合主キーを試した結果、「自然キー」を使用するベストプラクティスを試みているように聞こえますが、自動インクリメントIDフィールドを使用しても「間違い」はありません。

提案されたフィールドが大きすぎてキーとして使用できない場合は、そもそもそれらが最良の選択ではなかった可能性があります。より良いデータ型を持つ別の「自然」キー列を追加できますか?

頻繁にクエリされるテーブルに適切なインデックスと適切なデータ型を選択することで可能な最適化を考慮することを忘れないでください。

于 2011-10-18T14:50:51.160 に答える
0
  1. これは主キーの制限です。900バイトを超えるPKを持つことはできません。

  2. テーブルにID列を追加して、それを主キーとして設定できます。Guidはグローバルに一意であるため、私はGuidを使用することを好みます。

于 2011-10-18T14:53:15.567 に答える