سؤال

لدي عمود في جدول (على سبيل المثال.اسم المستخدم) الذي أريد التأكد من أنه فريد.لذلك قمت بإنشاء مفتاح فريد لهذا العمود وأطلق عليه اسم IX_Users_UserName.

الآن، إذا قمت بالكثير من البحث عن المستخدمين بناءً على اسم المستخدم الخاص بهم، فأنا أريد التأكد من وجود فهرس لهذا الحقل.

هل أحتاج إلى إنشاء فهرس منفصل، أم أن المفتاح الفريد يعتبر أيضًا فهرسًا، تمامًا مثل المفتاح الأساسي هو مفتاح فريد متفاوت المسافات؟

هل كانت مفيدة؟

المحلول

مفتاح فريد:يسمح المفتاح الفريد بقيمة NULL واحدة فقط.

تغيير الجدول لإضافة قيد فريد إلى العمود:

يضيف مؤلفو الجدول المتغير قيود ix_authors_name فريدة من نوعها (الاسم) اذهب

مصدر

مزيد من المعلومات من MSDN.

FWIW - إذا لم يقم القيد الخاص بك بإنشاء فهرس، فسوف أتجنب تسميته IX_ حيث يُفترض عادةً أن يكون مرتبطًا بواحد (IX = Index).

نصائح أخرى

بشكل أساسي، في SQL Server، يتم بالفعل تحقيق القيد الفريد عن طريق فهرس فريد.

الاختلافات بين القيد الفريد والفهرس الفريد دقيقة جدًا حقًا.إذا قمت بإنشاء فهرس فريد، يمكنك الإشارة إلى ذلك في قيود المفتاح الخارجي من جدول آخر (لا يعمل إذا قمت بإنشاء قيد فريد....).

إذن ما الفرق؟حسنًا - القيد الفريد هو في الحقيقة شيء منطقي على الجدول - فأنت تريد التعبير عن نية أن تكون محتويات عمود معين (أو مجموعة من الأعمدة) فريدة من نوعها.

يعد الفهرس الفريد (مثل معظم المؤشرات) بمثابة تفاصيل تنفيذ "وراء الكواليس".

من وجهة نظري، ما لم تكن لديك مشكلة حقًا في ذلك، سأستخدم دائمًا فهرسًا فريدًا - إن فائدة كونك جزءًا من قيد التكامل المرجعي صالحة تمامًا ويمكن أن تكون مفيدة جدًا في حالات معينة.من الناحية الوظيفية، ومن الناحية العملية، لا يوجد فرق بين استخدام القيد الفريد مقابل استخدام القيد الفريد.مؤشر فريد من نوعه، حقا.

المفتاح الفريد هو فهرس في كل منتج قاعدة بيانات تقريبًا.يجب أن يكون كذلك، وإلا فإن قاعدة البيانات ستواجه صعوبة في تطبيقه:عند إدراج قيمة ، يجب أن تجيب قاعدة البيانات ، "هل هذه القيمة موجودة بالفعل؟" طريقة عاقلة للقيام بذلك هي استشارة الفهرس.

ليس لدي خادم SQL أمامي لاختباره، ولكنني سأشعر بالصدمة إذا لم يحدث ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top