特定のシナリオでは、MachineNumber (Varchar) とその MachineID (Int) を持つルックアップ テーブルがあります。私のトランザクション テーブルでは、ルックアップ テーブルの MachineID を使用してマシン番号を参照しています。
要件: トランザクション テーブルで MachineID フィールド タイプを Varchar に設定し、ルックアップ テーブルでそのタイプを Int として保持することはできますか? 理由は、MachinNumber がルックアップ テーブルに格納されていない一部のマシンでは、ユーザーから提供された実際の MachineNumber を Transaction テーブル自体に格納する必要があり、マシン番号が英数字であるため、この参照フィールドのタイプを Int から変更したいからです。ヴァルチャーへ。
簡単に言うと、トランザクション テーブルの MachineID フィールドには、MachineID (ルックアップ テーブルから参照される) と実際のマシン番号 (ユーザーによって提供され、ここに直接格納される) の両方が含まれている必要があります。
質問: これらの参照フィールドに異なるタイプを使用することは良い方法ですか? それとも一般的な方法ですか? これら 2 つのテーブル間の Join を使用したクエリにどのような影響がありますか?
ありがとう、アリンド