
Gift ולא Gifts).prop).GiftID מסוג int, Name מסוג string, Price מסוג decimal (הטיפוס לכספים שמדויק בחישובים) ו-AgeGroupID מסוג int.AgeGroupID מסוג int, Name מסוג string, ו-MinAge ו-MaxAge מסוג int. כל פרופרטי יהפוך לעמודה.string יכול לקבל null, ולכן המהדר מזהיר. int לא יכול, ולכן אין אזהרה.? (למשל int?), ובדאטאבייס הוא יהיה Allow Null. תיאור אופציונלי הוא דוגמה הגיונית.= null!, והסימן אומר שנטפל בערך בהמשך.הטקסט המלא של הדקות הראשונות בהרצאה «יצירת מחלקות - Model Classes לתיאור הטבלאות שבמסד הנתונים» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
כעת אנחנו יכולים לגשת ולבנות את האישויות הדרושות לצורך גישה לדאטאבייס. איזה דאטאבייס אמרנו שאנחנו בונים? אנחנו בונים דאטאבייס עבור חנות מתנות. עשיתי פה איזושהי סכמה מסוימת של מה אני רוצה שיהיה לי בדאטאבייס. אני יודע שאני רוצה שיהיו לי מתנות, אז מן הסתם הולכת להיות לנו טבלה של מתנות.
למתנה יש כמובן קוד gift ID, יש לה שם, איזשהו טייטל של המתנה, השם שלה, מחיר כמובן, ואיזשהו משתנה אינטג'רי של לאיזה קבוצת גיל מתאימה המתנה הזאת.
יכול להיות שהמתנה שייכת לתינוקות, יכול להיות שהמתנה שייכת לילדים, או נוער, או מבוגרים, או בכלל לכל הגילאים. אז יש לנו פה עוד טבלה שמתארת קבוצות גיל.
בטבלה של קבוצות הגיל יש לנו קוד קבוצת גיל, Age Group ID, יש לנו את השם של הקבוצת גיל, נניח ילדים, תינוקות, מבוגרים, נוער, מה שבא לנו.
גיל מינימלי ששייך לקבוצה, גיל מקסימלי ששייך לקבוצה, ובעצם פה יש לנו סדרה קבועה של אזורי גיל, טווחי גילאים מה שנקרא. ואז מתנה מכילה פה את הקוד ואנחנו יכולים לשייך אותה לקבוצת גיל.
אז אפשר נניח לאחר מכן לעשות חיפוש ולהגיד תביא לי את כל המתנות ששייכות רק לילדים כי מישהו מחפש מתנה לילדים או תביא לי רק לתינוקות יש לנו את הידע הזה.
קודם כל, בדאטאבייס יש לנו סך הכל כרגע שתי טבלאות עבור חנות המתנות, איך בונים את זה בקוד פרסט. ובקוד פרסט אנחנו לא הולכים ובונים את הדאטאבייס ואז עושים משהו בקוד, אלא רק קוד, ולאחר מכן הדאטאבייס נוצר כתלות בקוד.
אז העיקרון הראשון הוא מאוד פשוט, כל טבלה שאמורה להיות בדאטאבייס בהקשר הזה כרגע, שיש לנו פה את הטבלאות הראשיות וטבלאות שהן טבלאות ליסטינג לדוגמה, טבלת גילאים זה ליסטינג, כי יש פה רשימה של טווחי גיל.
כל טבלה כזאת הופכת להיות קלאס, או אנחנו בונים קלאס שמייצגת אותה. כאשר הקלאס מתארת פריט בודד. לדוגמה, אם יש לנו טבלת מתנות, אז הולכת להיות לי מחלקה שמתארת מתנה בודדת.
אובייקט מהמתנה יתאר רשומה אחת בלבד בטבלה, כלומר מתנה אחת. קולקשן מהמחלקה הזאת קולקשן של אובייקטים יתאר את כל הרשומות שבטבלה.
במילים אחרות כל מה שאנחנו צריכים לעשות זה לבנות מחלקה שמייצגת מתנה ומחלקה שמייצגת קבוצת גיל זה השלב הראשון אז בואו נעשה את זה. הדבר הזה נקרא מודלים המחלקות האלה נקראות מודלים מודל זה קונספט שאומר מה המידע שיש לי בדאטאבייס איך אני מייצג אותו.
זה גם נקרא למדל את המידע, או למדל את המערכת, למדל את הדאטאבייס וכדומה. אז אנחנו פותחים פה תיקייה, מודלס, נתחיל עם מתנה. בואו נוסיף קלאס, כמובן ותמיד פריט בודד, אז זה יהיה גיפט ולא גיפטס.
הנה יש לנו קלאס שמתארת מתנה בודדת. בואו ניפטר רגע מזה וניפטר מכל הניים ספייסים. מה בעצם יש לנו במתנה בודדת? אז במתנה בודדת אני רואה שיש לי GIFT ID, NAME, PRICE, AGE, GROUP ID. זה בוא ניקח אינטג'ר, מספור אוטומטי רץ.
גם זה מספור אוטומטי רץ, זה זה, זה אינטג'ר. NAME זה כנראה סטרינג, ופרייס אנחנו צריכים משהו שיתעסק עם כספים. בדוטנט מה שמתעסק בכספים זה דצימל. דצימל זה טיפוס נתונים שמיוחד עבור כספים, כי ברגע שעושים איתו פעולות חשבוניות, מכפילים אותו, כל מיני דברים הוא מאוד מאוד מדויק הרמת הדיוק שלו היא גבוהה בחישובים מתמטיים אסור לנו
לפקשש בדיוק בכספים כי זה נתון לתביעות אז לכן יש לנו את הדצימט אז כל מה שאנחנו רוצים לעשות זה לבנות את המאפיינים האלה ואנחנו לא יכולים לבנות אותם כמשתנים המערכת הולכת להתעלם ממשתנים מכל מיני data members מה שנקרא גם אם הם public זאת לא השיטה מה שאנחנו צריכים לעשות זה פרופרטיז פרופ ונקרא לו גיפט איי-די רק פרופרטיז
שהם פאבלי כמובן המערכת הולכת להתייחס אליהם ולפיהם לבצע את הבנייה הנה גיפט איי-די בואו נעשה עוד אחד פרופ סטרינג אינן-ניים פרופ דצימל ונקרא לו פרייס פרופ אינט אייג' גרופ בואו נבנה את נוסיף קלאס אייג' גרופ ניפטר מזה ניפטר מזה באמת שכדאי שה-Namespace יוגדר בצורה כזאת עם נקודה פסיק, לא צריך את האינדנטציה המיותרת,
נעשה אותו דבר כאן. הנה יש לנו קלאס Age Group, כמובן המחלקות הן לא סטטיות כי אנחנו צריכים לייצר אובייקטים מהן, ובואו ניזכר מה יש לנו כאן.
Age Group ID זה המפתח הראשי. Prop Int Age Group ID name, פרופ סטרינג name, פרופ אינט מין h ואינט