› פורומים › אפיון ופיתוח פריוריטי › בניית מסך שיבוצי נסיעות
- This topic has 5 תגובות, 2 משתתפים, and was last updated לפני 8 שנים, חודש 1 by
yitzchok.
- Post
-
- יולי 23, 2017 בשעה 3:07 am
אני רוצה לבנות טבלת שיבוץ נסיעות ללקוחות –
בטבלה יש לי :מפתח U –
מס שיבוץמפתח U נוסף שמורכב מהעמודות –
רכב
נהג
יום תחילת נסיעה
שעת תחילת נסיעה
יום סיום נסיעה
שעת סיום נסיעהאיך אני נמנעת ממצב שמשתמש יוכל לשבץ בטבלה את אותו נהג + רכב בשעות חופפות?
למשל: ברגע ששיבצתי אותו רכב+נהג דקה אחרי המערכת מאפשרת…
מס שיבוץ רכב נהג תאריך תחילת נסיעה שעת תחילת נסיעה תאריך סיום נסיעה שעת סיום נסיעה
1 123 500 23.07.2017 08:00 23.07.2017 09:00
2 123 500 23.07.2017 08:01 23.07.2017 09:00
- Replies
-
- יולי 23, 2017 בשעה 9:17 am
את יכולה לבדוק שיבוץ באמצעות הפעלת CHECK-FIELD על השדה "שם נהג", וגם בשדה "רכש". הבדיקות תהיינה דומות אך שונות. כיון שאת רושמת רק את תחילת השיבוץ ואת סיומו, צריך לבדוק בתוך לולאה. משהו כמו
:START = :$.STARTHOUR – 1:00;
LABEL 10:
:START = :START + 1:00;
ERRMSG 5000 FROM YOURTABLE
WHERE DRIVER = :$.DRIVER
AND :START BETWEEN STARTHOUR AND FINISHHOUR
AND CURDATE = :$.DATE;
LOOP 10 WHERE :START < :$.FINISHHOUR;
- יולי 23, 2017 בשעה 1:52 pm
אגבה את נעם ואוסיף שזה לא דבר שאפשר לעשות ברמת הטבלה בעזרת מפתחות.גם בדטהבייסים יותר גמישים כמו SQL Server (ולא רלוונטי אם הפריוריטי שלך על SQL Server כי אי אפשר להשתמש בכל היכולות) קשה עד בלתי אפשרי ליצור חוקיות כזו ברמת הטבלה בלבד.
אני לא בטוח שצריכים לולאה כזאת.
מספיק לחפש שיבוצים קיימים שההתחלתה של החדש או הסיום של החדש בתוכם, וגם שההתלחה שלהם או הסיום שלהם בתוך השיבוץ החדש המבוקש. כשיש חפיפה חייב להיות שלכל הפחות קצה אחת של משהו שווה לקצה של השני או בתוך התחום שלו.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יולי 23, 2017 בשעה 2:27 pm
- יולי 27, 2017 בשעה 3:13 am
תודה רבה לכם, ממש מעריכה את העזרה 🙂בסוף בניתי טריגר CHECK-FIELD על שדה שעת התחלה שבודק –
תנאי מספיק – שנהג תפוס בטווח הזמן
תנאי מספקי – שרכב תפוס בטווח הזמןERRMSG 500 WHERE DRIVER = $.DRIVER
AND $.SDATE BETWEEN SDATE AND EDATE
AND $.STIME BETWEEN STIME AND ETIMEERRMSG 501 WHERE CAR = $.CAR
AND $.SDATE BETWEEN SDATE AND EDATE
AND $.STIME BETWEEN STIME AND ETIME- יולי 27, 2017 בשעה 5:07 pm
STIME זה השעה ב-SDATE, ו-ETIME זה השעה ב-EDATE?
ה-SDATE וה-EDATE הם DATE אורך 8?אם הבנתי נכון זה לא רעיון טוב ויביא לדברים כמו מה שעשית שלא יביא לתוצאות נכונות.
בלי ממש להוכיח את זה כל החושים שלי אומרים שהטריגר הזה לא יעשה מה שאת רוצה (מעבר לזה שאין בפדוקות אלה FROM אבל אולי את זה דילגת בכוונה)[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
- יש להתחבר למערכת על מנת להגיב.