私はビジュアルスタジオで、複数のテーブルの2つの列に複合インデックスを作成しようとしています。 2つの列があります。ユーザーIDはすべての表にあり、外部キーとして機能します。ユーザーが1つの以上のアドレスと1台の以上の携帯電話を持つことができること複合インデックス:列の順序はsql server/linqのsqlに関係しますか?
TablePhones:
PhoneID | UserID | PhonePrefix | PhoneNumber | PhoneExtention
TableAddresses:
AddressID | UserID | AddressStreet1 | AddressStreet2 | AddressCity...
注:その後、各テーブルは次のように...、電話、住所などのオブジェクトの部品を参照するために、独自のキーを持っています数。
私はLINQ to SQLはして取得するwhere句クエリオブジェクトは、次のようになり使用しています:現時点では
read queries:
where x.UserID == TheUserID
update/delete queries:
where x.UserID == TheUserID && x.PhoneID = ThePhoneID
を、主キーはphoneidなどとのAddressIdにあり、私はしていますよPhoneID/UserIDとAddressID/UserIDに複合インデックスを作成します。データベースの列の順序はそのままですか、すべてのテーブルの最初の位置にUserIDを移動する必要があります。
ありがとうございます。
UserIDが一意でない場合はどうなりますか?それは主キーの問題ですか? – frenchie
私はあなたのことを正しく理解していません。すでに主キーがあるとします。 – a1ex07
テーブル構造を再設計し、複合主キーを使用する場合は、次の点を考慮してください。これらのテーブルのレコードを別のテーブルに参照する必要がある場合は、(userId、WHERE句の列の順序も重要ですか? – a1ex07