לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 14-02-2013, 13:51
  שפמון שפמון אינו מחובר  
 
חבר מתאריך: 13.12.07
הודעות: 59
PHP/MYSQL - תוכנה לשיבוץ - הקומבינציה הגבוהה ביותר

שלום לכולם
אני מנסה לתכנת משהו שאין לי מושג איך ואשמח לעזרה;

אני מתכנת תוכנה בPHP וMYSQL.
יש לי רשימה של עובדים במפעל,
באותו מפעל יש כמה תפקידים.
בעיקרון, כל עובד אמור לדעת לבצע את כל התפקידים ברמה של 100% אבל בפועל זה לא ככה. עובד אחד טוב יותר בעמדה 1 עובד אחר טוב יותר בעמדה 3 וכו'.

התוכנה צריכה לשבץ את העובדים, במשמרות לפי העמדות שלהם.

עד כאן בעיקרון הכל סבבה. העניין הוא האילוצים
התוכנה צריכה לקחת בחשבון 2 אילוצים עיקריים והם - האם אותו עובד בכלל יכול לעבוד בתאריך הזה והאילוץ השני הוא האם ההעובד מנצל את מלוא הפוטנציאל שלו בעמדה הזו.

סה"כ יש לי 10 עמדות;
אז יצרתי טבלה של mysql ובה רשימה של כל העובדים. ו10 עמודות באותה הטבלה כאשר כל עמודה מייצגת עמדה אחרת במפעל ובכל שורה אותו עובד קיבל ציון מספרי שבין 0 ל-10 כאשר 0 זה לא מתאים לעמדה הזו ו10 זה עובד שמבצע את העבודה בעמדה הזו הכי טוב.

עכשיו אני בבעיה,
כי בעיקרון אילו הייתי עובד בשיטה ליניארית פשוטה הייתי עושה לולאה כלשהי (for או while)
ועובר על כל העמדות
מבקש מהMYSQL להחזיר לי את כל האנשים שיכולים לעבוד באותו היום ושקיבלו ציון מעל ל0 בעמדה הזו ופשוט עושה פונקציה של מקס, מה הציון הכי גבוה שאני יכול לקבל והכל טוב.

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

תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

אני צריך לאייש 3 עמדות;

בעמדה הראשונה שלי עדיף לי לשים את משה, למה? כי הוא מומחה בעמדה הזו (ציון 10). הסיבה השנייה היא שצילה שגם היא ברמה 10, תהיה טובה לי גם בעמדה 3 (ציון 9) ולכן אני לא רוצה "לבזבז" אותה כשיש לי את משה שהוא מתאים באותה מידה בעמדה הראשונה אבל פחות מתאים בעמדה 3.

ואת הפונקציה הזו אין לי מושג איך לתכנת. כלומר שהPHP יראה את הטבלה באופן תלת מימדי ויצליח לשבץ את האנשים באופן הכי נכון.

אשמח לכיוון...
_____________________________________
דרוש איש מכירות שותף לעסק שאני רוצה להקים בנושא אינטרנט
נשמע מעניין? צור קשר בהודעה פרטית

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 14-02-2013, 15:06
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 1 שנכתבה על ידי שפמון שמתחילה ב "PHP/MYSQL - תוכנה לשיבוץ - הקומבינציה הגבוהה ביותר"

אין לי יותר מדי דקות להקדיש לזה, אך אנסה להתחיל ומשם תתקדם.

תתרגם את התיאורים הבאים לקוד PHP (אני מניח שלפחות את חלקם אפשר לממש כבר במסד הנתונים - אך בניסוח שונה מהדרך המתוארת להלן).
1. צור X משתנים. X = מס' העמדות הנדרשות. (כמובן שניתן להגדיר מערך בין X איברים, תלוי בנוחות וביעילות).
2. שלוף עבור כל עמדה עובד אחד שהוא בעל הדירוג הגבוה ביותר עבוד עמדה זו, אך בעל הדירוג הנמוך ביותר עבור עמדות אחרות והוא עדיין לא נבחר עבור אף עמדה.
3. בדוק את מצב העמדות: אם העמדות מאויישות, סיימת. אם חסר עדיין עובד/ים בעמדה מסויימת, חזור שוב על פעולה מס' 2.

תשים לב להוסיף בדיקה לאחר כל שליפה, כדי לדעת אם אין עובדים נוספים ולהפסיק את האיוש.
_____________________________________
בניית אתרים
פיתוח יישומי אינטרנט
שמות תחום, אחסון, עיצוב ושירותים נלווים.

פיתוח, שירות,יעוץ והדרכה.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 14-02-2013, 19:13
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 3 שנכתבה על ידי שפמון שמתחילה ב "חשבתי על משהו"

זה נשמע לא יעיל, מאד לא יעיל, במיוחד ככל שיהיו יותר עובדים ויותר תחומים.
מס' האפשרויות יהיה מס' העובדים בחזקת מס' התחומים פחות מס' התחומים - כי עובד יכול להופיע רק פעם אחת בכל תחום (תחשוב על עסק שלו 20 עובדים ו-5 תחומי עיסוק...).

צריך לקחת את העובד הראשון עבור כל משרה ולאחר מכן להחליף כל פעם עובד אחד אחר - לפי סדר מסויים (למשל להחליף את העובד הראשון כל פעם לתחום אחר ולאחר מכן להחליף את העובד השני - כל פעם בתחום אחר), אך ללא אפשרות שבה עובד אחד מופיע פעמיים באותה אפשרות.
_____________________________________
בניית אתרים
פיתוח יישומי אינטרנט
שמות תחום, אחסון, עיצוב ושירותים נלווים.

פיתוח, שירות,יעוץ והדרכה.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 22:15

הדף נוצר ב 0.05 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר