
הטקסט המלא של הדקות הראשונות בהרצאה «מפתח זר בטבלה» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום וברוכים הבאים לקורס פיתוח BI שיעור מספר 5. אז בשיעור הקודם הסתכלנו וניתחנו את חמש הטבלאות שמרכיבות את הדאטה בייס שלנו של החברה המדומה ודיברנו על השדות השונים ועל הקשרים והיום אנחנו נרחיב גם על המבנה עצמו וגם על הקשרים.
אז אם אתם זוכרים דיברנו למשל על זה שטבלת קסטומרס וטבלת אורדרס שורות ביניהם כי הזמנה היא ללקוח מסוים אז הייצוג של השדות עבור הקשר הזה הוא דרך המזהה אז בוא נדבר טיפה מה זה מזהה באופן עקרוני הדבר הכי טוב לעשות כשמקימים טבלה זה שלכל טבלה יהיה בעצם מזהה ייחודי שמזהה כל רשומה אם נחזור לדאטה בייס נתחבר מיד נראה ותחריתם את זה כבר שלכל טבלה יש שדה איי די זה מספר שלם מספר רץ מספר
לנו את הרשומות בסדר עולה אחד שתיים שלוש וכולי בוא נפתח את הדאטה בייס נפתח את קומפייני שלנו טייבלס נלך לקסטומרס ותכף זה ייפתח הרי כל שורה בטבלת קסטומרס זה בעצם לקוח ואם כך כל מזהה של שורה בטבלת הלקוחות זה בעצם מזהה לקוח הנה מריה אנדרס קיבלה מספר 1 היא הייתה מן הסתם הראשונה שהוכנסה לטבלה הזו אחרי האנה קיבלה מספר 2 וכולי
אז לכל לקוח יש מספר רץ מספר מזהה שמאוד מאוד חשוב שהוא בעצם יוניקי הוא ייחודי כולם לא יכולות לאותו, סליחה, לכמה לקוחות את אותו מספר. תחשבו איזה בלאגן זה היה עושה.
יכול להיות אותו שם פרטי, אותו שם משפחה, יכול להיות אפילו מצב שאותו שם פרטי ומשפחה יהיו לשני לקוחות שונים, אבל מספר חל להיות רק אחד.
אם לקוח מתקשר לרכז שירות לקוחות למשל ואומר שלום אני משה כהן, הם מחפשים יכול להיות כמה משה כהן, איזה מהם מדבר איתם, אבל אם הוא אומר אני משה כהן מספר לקוח מספר 324, אה, אז יש רק אחד כזה ואפשר לפתוח את התיק שלו, ולטפל בו אז זו דוגמא אחת אז לכל רשומה בכל טבלה תמיד יהיה מזהה ייחודי שזה
מספר בסדר רץ אם נפתח את טבלת orders אנחנו נראה שגם לטבלת orders יש מזהה וככה וככה הלאה חשוב להגיד שהמזהה הוא לא אקראי אבל הוא בעצם אין לו משמעות זאת אומרת אם מישהו קיבל לקוח מספר 1 לקוח מספר 7 זה לא אומר שום דבר עליו זה פשוט מזהה ייחודי שמזהה אותו באופן ייחודי בסדר אז זה לגבי המזהים איך מזהים קשורים לקשרים בין הטבלאות אם תשימו
לב טבלת קסטומרס יש לה כמו שראינו ID שדה מסוג אינטג'ר מספר וטבלת אורדרס גם את זה ראינו שיש לה שדה מסוג האינט שזה ID אבל תשימו לב שיש לה גם קסטומר ID שהוא גם אינט מה המשמעות של זה בעצם בטבלת אורדרס שותלים את המספר הלקוח את המזהה של טבלת הקסטומרס ואם תשימו לב ליד ה-ID של קסטומרס בטבלת קסטומר כתוב pk,
פריימרי k, זאת אומרת מפתח ראשי, כי בטבלת הקסטומר המזהה לקוח הוא המזהה הראשי של הטבלה, הוא מזהה את הלקוח, את התוכן של טבלת הלקוחות, ובטבלת אורדרס הקסטומר ה-ID הוא fk הוא פורום, כי הוא בעצם מפתח זר,
הוא מתארח בתוך טבלת האורדרס כדי לייצג את הלקוח שקנה את ההזמנה. זה נשמע טיפה מסובך אבל בואו נראה את זה בפנים.
אז אני נשאר בטבלת האורדר סליחה בטבלת האורדרס יש לי את אורדר מספר אחת אוקיי וה-Customer ID שלו הוא 85 מה זאת אומרת אם אני הולך לטבלת קאסטומר ומחפש את קאסטומר מספר 85 אני רואה שזה פול הנריות אוקיי מצרפת זאת אומרת שאת הזמנה מספר אחת ביצע אותו הנרי פול סליחה פול מצרפת אוקיי
הבזונה מספר שתיים זה Customers 79. מי זה 79? קארין ג'וספס מג'רמניה אז המזהה של הלקוח בזה שהוא מתארח בטבלת האורדרס הוא בעצם מצביע לנו כל הזמנה מי הלקוח שביצע אותו.
ככה זה המימוש של הקשרים בין הטבלאות שאנחנו יכולים לדעת מה הקשר הספציפי לכל רשומה בין רשומה לרשומה בין הטבלאות. זה בעצם החטא שאנחנו רואים פה. אגב יש תרשימים יותר מוצלחים שממש מראים לנו איזה שדה קשור לאיזה שדה זאת אומרת אפשר למתוח קו מהCustomerID פה ל-ID הזה.
שימו לב לא להתבלבל ולא לקשר את ה-ID הזה ל-ID הזה אומנם יש להם את אותו שם זה קצת יכול קצת לבלבל אבל זה בכלל לא אותו ID. פה זה ID שמייצג את ה-CustomerID ופה זה ID שמייצג את ה-OrderID אין קשר ביניהם.
הקשר הנכון הוא CustomerID לפה ל-ID בטבלת ה-Customer. אותו דבר בטבלאות האחרות. מה הקשר בין Order ל-Order Items? רואים שיש את ה-ID שזה מזהה ייחודי של שורת