
הטקסט המלא של הדקות הראשונות בהרצאה «קשרים בין הטבלאות בתוך Qlik Sense - חלק 3» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
והבאנו כבר ארבע טבלאות, ביטלנו בקשרים, ביטלנו מפתח סינתטי שלא רצינו. בואו נביא את הטבלה החמישית והאחרונה, זאת טבלת הספלייר, הספקים, כי כל מוצר מקושר לספק מסוים, וככה אנחנו נשלים את כל ה-ERD, כל הטבלאות, ונביא את כל הנתונים שאנחנו רוצים לתוך המערכת,
ונוכל להמשיך ולשחק ולבנות כל מיני תצוגות ודוחות. אז טבלת ספלייר. אגב, משהו קטן, אפשר תיאורטית, כמו שאתם יודעים ב-SQL לעשות גם סלקט כוכבית במקום זה ואפשר כמובן להעתיק את זה גם לקליקסנס וזה יעבוד הוא ימשוך בעצם את כל השדות באותה טבלה אני לא כל כך ממליץ לעשות את זה מכיוון
שאז אין לך שליטה בשדות למשל כל מה שעשינו עד עכשיו לשנות שמות של שדות לא יכולנו לעשות כי בעצם כוכבית הוא פשוט מביא את הכל ואי אפשר לשלוט בזה לכן אני תמיד ממליץ להביא את כל השדות בצורה מפורשת לתוך משפט ה-SQL אוקיי אז העתקנו בואו נחזור לסקריפט ונוסיף פליירס, נסדר את זה קצת פליירס ולאיידי נקרא ספלייר איידי,
אמרנו נמשיך לשיטתנו בוא נשמור ונריץ ועוד פעם יש לנו הודעה או זה ממש שגיאה, אוקיי כאילו הוא עוצר והוא אומר שיש משהו בעיה עם הקונטקט טייטל בעצם בחרתי טפסיקינג פה יש לי כבר כמה וכמה בעיות הוא סיים לרוץ אבל הוא מתריע לי על בעיות בוא נלך ונסתכל עליה, קודם כל יש לי פה עוד מפתח סינתטי בין סיטי לקאנטרי ונוצרה לי עוד בעיה של לופ,
כלומר נטפל קודם במפתח הסינתטי אחרי זה נטפל בלופ הזה המפתח הסינתטי הוא לפי סיטי וקאנטרי שהוא מזהה שבעצם זה קיים גם בטבלת ספלייר וגם בטבלת קאסטומר זאת אומרת לכן במערכת גם המדינה וגם העיר נשמר הן ברמת כוח והן ברמת ספלייר זה הגיוני אבל זה לא טוב לנו כי זה בעצם יוצר
את אותה טבלה סינתטית הפתרון הוא כמו שכבר ראינו במקרים דומים לתת שמות יותר מלאים אז גם בקאסטומר זה נקרא לסיטי קאסטומר סיטי ו-Country תהיה, אותו דבר נעשה ב-Supplyer, C תהיה Supplyer, City, Country.
שימו לב פה שבעצם, בואו נגיד שבשביל לפתור את המפתח הסינתטי הייתי יכול לתת שם רק לשדה אחד, אבל אני לא רוצה בעצם את שתי השדות לקשר, כי אין קשר בין המדינה של הלקוח למדינה של הספק, זה לא קשר שצריך לעשות אותו.
זה לא שלקוחות מארצות הברית קונים רק מוצרים שספקים מארצות הברית ממש לא קשר זה פשוט לא נכון אז שימו לב פה היה לנו שהוא דגל כי במקרה נוצר מפתח סינתטי ונתן לנו שהוא התרעה אבל זה לא חייב להיות ככה אנחנו צריכים לשים לב שהקשרים שנוצרים זה אכן הקשרים שאנחנו רוצים כי בדאטה בסווה פעמים יש שמות זהים
בטבלאות שונות וזה בסדר גמור זה אף אחד לא מפריע לאף אחד אבל בקליקסס מכיוון שהוא מקשר לפי אוטומטית לפי שמות זהים אנחנו חייבים לשים לב שהקשרים שנוצרים זה אכן הקשרים ואנחנו רוצים, והקשרים הנכונים מבחינת הנתונים.
אז במקרה הזה, כמו שאמרתי, שני הקשרים לא נכונים, גם ה-City לא נכון וגם ה-Country, אין קשר בין המדינה והעיר של הספק למדינה והעיר של הלקוח.
בוא נריץ, והאמת היא שבעיית הלופ נפתרה לבד, אז לא נטפל בה עכשיו, אולי בהזדמנות אחרת, בואו נראה את המודל, פשוט הלופ גם כן נוצר מהשדות האלו שעשו בעיות.
אוקיי, ועכשיו בעצם זה כבר נראה מושלם. בוא נסדר את זה יפה, Customers, Orders, Order Items, בסדר, לפי הקשר האמיתי, Products ו-Supplies.
אז אם אני אחזור בעצם למשמעות העסקית של הנתונים, לקוחות קונים הזמנות או מוצאים הזמנות, בכל הזמנה יש שורה אחת או יותר בשורות הזמנה, בשורת הזמנה יש ייצוג למוצרים, כי בכל שורת הזמנה קונים מוצר אחד, וכל מוצר מקושר לנתונים של הספק, בעצם על המערכת השלמה בסיס הנתונים משלם שהבאנו
אותו לדאטאבס. אגב, פתרון אחר חוץ מלשנות שמות יכול להיות פשוט לא למשוך שדות. זאת אומרת, נניח שהיה לי פה פאקס, בסדר? גם בספלייר וגם בקסטומרס, כמובן שזה