האם מפתח ראשי יכול להיות גם מפתח זר?
האם מפתח ראשי יכול להיות גם מפתח זר?

וִידֵאוֹ: האם מפתח ראשי יכול להיות גם מפתח זר?

וִידֵאוֹ: האם מפתח ראשי יכול להיות גם מפתח זר?
וִידֵאוֹ: הקטע שגרם לאדיר מילר להיקרע מצחוק באמצע ההופעה 2024, אַפּרִיל
Anonim

מפתחות ראשיים תמיד צריך להיות ייחודי, מפתחות זרים צריך לאפשר ערכים לא ייחודיים אם הטבלה היא מערכת יחסים של אחד לרבים. זה בסדר גמור להשתמש ב-a מפתח זר בתור ה מפתח ראשי אם הטבלה מחוברת על ידי מערכת יחסים של אחד לאחד, לא מערכת יחסים של אחד לרבים.

באופן דומה, נשאל, האם מפתח ראשי יכול להיות גם מפתח זר באותה טבלה?

ליצור מפתח זר קל כמעט כמו יצירת א מפתח ראשי , אלא ש-SQL Server מטיל עליו עוד כמה כללים מפתחות זרים . לדוגמה, ה מפתח זר חייב להתייחס א מפתח ראשי או אילוץ ייחודי, למרות ההתייחסות הזו פחית להיות על אותו שולחן או על אחרת שולחן.

כמו כן, במה שונים מפתחות ראשיים וזרים? א יְסוֹדִי key הוא מפתח מיוחד המשמש לזיהוי ייחודי של רשומות בטבלה, ואילו א זָר המפתח משמש ליצירת קשר בין שתי טבלאות. שניהם זהים במבנה אבל משחקים שונה תפקידים בסכימת מסד נתונים יחסי.

כאן, האם אתה יכול לקבל מפתח זר ללא מפתח ראשי?

כן. אָנוּ פחית ליצור מפתח זר ללא שיש מפתח ראשי בטבלת ההורים. רובנו נמצאים בתפיסה מוטעית שאנחנו פחית לא ליצור א מפתח זר ללא מפתח ראשי בטבלת ההורים. המזהה הייחודי הזה פחית לִהיוֹת מפתח ראשי או ייחודי מַפְתֵחַ.

האם ניתן לשכפל מפתח זר?

בניגוד לראשוני מפתחות , מפתחות זרים יכולים לְהַכִיל לְשַׁכְפֵּל ערכים. כמו כן, זה בסדר שהם מכילים ערכי NULL. אינדקסים לא נוצרים אוטומטית עבור מפתחות זרים ; עם זאת, בתור DBA, אתה פחית להגדיר אותם. מותר לטבלה להכיל יותר מאחד מפתח זר.

מוּמלָץ: