דילמה ב-oop: ריבוי פונקציות + ריבוי שאילתות או למעט ע"ח ה-oop


  • תכנות

    יש לי הרבה טבלאות, ובעצם אמור להיות לכ"א יישות. מאידך, יש הרבה סוגי סינונים, כל טבלה ואופיה. לדוגמא טבלת משפחה (הורים) וטבלת ילדים. אם אני רוצה לקבל את כל הילדים למשפחת X, אופציה א' זה לגשת לטבלת המשפחות ועם JOIN לצרף את הילדים. אופציה ב' זה לעשות 3 פונקציות:

    1. פונקציה שניגשת לטבלת הילדים ומחזירה את כל המידע על ילד בודד לפי סינון ID של הילד (או אפילו מקבל מערך של ID ילדים, ומחזירה אובייקט עם פרטי כל הילדים שהID שלהם הופיע במערך).
    2. פונקציה שניגשת לטבלת הילדים ומחזירה את כל הID של הילדים לפי ID משפחה מסויימת.
    3. פונקציה שניגשת לטבלת המשפחות ומקבלת את כל המידע עליהם, וכשאחד המתודות ניגש לפונקציה 1 ומחזיר מערך הכולל את פרטי הילדים שהתקבלו ע"י פונקציה 2.

    מה עדיף, תכנותית לעומת ביצועים.

    תודה.



  • לא הבנתי מה לא טוב בJOIN.


  • תכנות

    בזמנו קראתי על OOP וחלק מהטכניקה היה לפצל את הארועים שמרכיבים פונקציה מבוקשת לפונקציות נפרדות, כדי להקל על תחזוקה של הקוד בעתיד.
    ומכאן שאלתי הנ"ל.

    אבל מהתשובה של @dovid אני מבין את הכיוון..., אז השאלה היא אחרת: אם אני מפצל את הפונקציה כנ"ל וממילא יהיה פיצול שאילתות, האם זה עשוי להאט את התגובה (משמעותית)?



  • @chagold לעיתים יש האטה כל שהיא אבל לא משמעותית בכלל (זה בהנחה שיש לjoin התניית where בטבלת המשפחות למשחפה ספציפית, כי ההתניה היא רוחבית, לעיתים יכול להיות שמפצול יהיה יותר טוב ואעפ"כ יש מקפידים לא לפצל מהטעם דלהלן), אבל זה פיצול לא נכון.
    פיצול ליחידות קטנות עושים לדבר שאין בו קופסה שחורה מוכנה (למשל פונקציה אחת וארוכה משלך), משא"כ JOIN זה קופסא שחורה - זה בטוח יעבוד וזה לא בתחום אחריותך (מישהו אחר אחראי לזה) וזה הכי קל לתחזוקה.


התחבר כדי לפרסם תגובה
 

31
מחובר

1.5k
משתמשים

5.3k
נושאים

58.6k
פוסטים

סלולר כשר במחירים הנמוכים ביותר עם ובלי ניוד.

כנסו לאתר לקניה מקוונת, או בדקו סניף קרוב לביתכם.

מוצרים עם הנחה

לחצו פה כדי להגיע לרשימת מוצרים עם הנחה בקיאספי.

בהגעה דרך הלינק, ישנה הנחה בשלב התשלום בקופה!

בא תתחבר לדף היומי!