
הטקסט המלא של הדקות הראשונות בהרצאה «קשרים בין הטבלאות בתוך Qlik Sense - חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בואו נמשיך בעניין הטבלאות אז ראינו שניתנו לנו אכן שתי הטבלאות שביקשנו טבלת קסטומר וטבלת אורדרס אבל שימו לב לקשר שנוצר פה בעצם קשר בין איי-די בטבלת אורדרס לאיי-די בטבלת קסטומר.
האם זה הקשר הנכון? התשובה היא לא, כי אם אני הולך לטבלת אורדרס, למדוד בזה את השם הלא נכון, אתה רואה שחסר פה d, לא משנה, טבלת אורדרס, מה מייצג ה-id בטבלת האורדרס?
את ה-id של ההזמנה. אפשר לראות הזמנה אחת, הזמנה מספר 2 וכו'. טבלת קסטומר זה ה-id, הוא ה-id של הלקוח. האם הקשר הוא בין ה-id של הקסטומר ל-id של האורדרס?
כמובן שלא, כמובן שלא בהכרח שלקוח מספר אחת קנה את ההזמנה מספר אחת. הקשר הנכון זה בין ID ב-Customer ל-Customer ID ב-Order זאת אומרת שבטבלה של ה-Order של הזמנו Customer ID הוא מה שמייצג לי את המספר של הלקוח וזה הקשר שצריך להיות. אז למה הוא עשה לי את הקשר הזה?
התשובה היא שבקליקסנס הוא פשוט מקשר לפי שמות זהים באופן אוטומטי כל פעם שהוא רואה שם שהוא זהה בשתי טבלאות הוא ייצר ביניהם join זאת הדרך בקליקסנס להגדיר קשרים למעשה זה לא בדיוק join זה קשר אנחנו נגיע לזה בהמשך אבל איך אני משנה את זה אני רוצה לקשר כאמור בין customer ID לבין ID ואנחנו פשוט נותנים אליאס נותנים שמות אחרים כינויים לשמות של
להסדות דומה למה שעושים ב-SQL בעצם לכפות אותו להכריח אותו ליצור את הקשר שאנחנו רוצים אז יש פה שני דברים שאנחנו צריכים לעשות א' אנחנו צריכים לא לתת לשבור את הקשר בין ה-ID הזה ל-ID הזה וגם כן ליצור את הקשר עם ה-Customer ID הזה.
אז מה שמקובל ונכון לעשות במקרים שיש לנו כאלו טבלאות עם שמות דומים, פשוט לתת את השם של הישות או של הטבלה ככינוי.
זאת אומרת פה ה-ID הזה הוא בעצם ה-ID של ה-Customer, אז מה שאני אעשה אני אעשה ID as customer customer ID אוקיי זה חלק מ-SQL אתם יודעים כבר את כל זה הרעיון פשוט לתת אליאס לשדה שלא יתנגש לי וגם פה למען הסדר הטוב נקרא לזה Order ID למרות כבר לא התנגשו כי זה לא יותר שם אבל זה תמיד טוב לתת שמות שהם ברורים ID זה שם כללי אז order ID
ובעיקרון זה מספיק כי ה-customer ID עכשיו הזה זהה ל-customer ID הזה תשימו לב רק בשביל ההדגמה נקרא לזה customer ID עם d גדולה אתם רואים שעכשיו זה לא זהים בוא נראה אם זה פתור את הבעיה אני מריץ קודם כל יש לו בעיה זו syntax error משהו עם פסיק נכון יש לו בעצם פעמיים פסיק אוקיי הפסיק פה הפסיקים מופיעים לפני זה אז אני מוחק את זה פה מוחק את זה גם פה והריצה הצליחה אבל בוא
נראה את התוצר מבחינת הטבלאות. מה שקרה עכשיו שלא נוצר לי קשר בכלל. את הקשר של איי-די ואיי-די אכן פירקתי כי אין אף שדה אפילו לא אחד שקוראים לו איי-די והוא לא קישר בין הקסטומר איי-די פה לקסטומר איי-די פה.
פה אתם מבינים שהקליקסנס עובד בצורה שהיא רגשה לאותיות גדולות או קטנות באנגלית הוא לא קישר ביניהם מכיוון שפה זה די גדולה ופה זה די קטנה אז רציתי להתאים את זה אז בואו נחזור ונתקן את זה ומכיוון שרצוי תמיד לשמור על איזשהו עקביות אז אנחנו נעשה את זה תמיד עם די קטנה כמו שיש פה איי די עם
די קטנה אז פה נעשה ככה ופה זה כבר קוראים לזה עם כרטום איי די עם די קטנה ועכשיו זה אמור להיות בסדר בואו נשמור בואו נריב בואו נבדוק ב-DataModelViews מה קורה עכשיו אוקיי זה כבר נראה יותר טוב קשר בין Customer ID בטבלת Order וטבלת Customer הופ אבל יש פה בעיה אחרת שלא עשיתי את הסדר הנכון גם בסדר הוא שינה את הסדר שלהם בואו נלך עוד
פעם בסדר אז Customer ID אכן שייך ל-Customer ID ו-Order ID הוא שינה לו את השם כמו שביקשתי גם כן אז בואו נשנה את השם של הטבלה נכון או אודר אז אם אני עכשיו קצת אתקן על הנתונים שהבאתי בוא נסתכל רגע על האורדרס אורדר מספר אחת קשור
לקסטומר 85 וקסטומר 85 נמצא אי שם למטה ובאמת הקשר הזה הוא הקשר הנכון. עכשיו אני חוזר לעם שרק משתמש שני קודם כל יש דברים שהפסיקו לעבוד.
למה? אתם רואים ששני הגרפים בעצם כבר לא מציגים כלום אני בוחר אחד מהם הולך לדאטה אתם רואים שפה באדום קאונט איי די בסדר המדד שבעצם ספר לי לקוחות לא עובד הוא אדום למה כיוון שאין לי כבר שדה איי די נכון לפני ולכן ה-ID ייצג את מספר הלקוח לפני ששיניתי