דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. עזרה בתכנון

עזרה בתכנון

מתוזמן נעוץ נעול הועבר ארכיון code613m
14 פוסטים 6 כותבים 819 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    ארכיטקט
    כתב ב נערך לאחרונה על ידי
    #2

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

    בהצלחה!

    פורסם במקור בפורום CODE613 ב21/12/2015 21:38 (+02:00)

    אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

    תגובה 1 תגובה אחרונה
    3
    • S מנותק
      S מנותק
      shsh654
      כתב ב נערך לאחרונה על ידי
      #3

      לכאורה דרך המלך היא 2 טבלאות
      טבלת חדרים;
      טבלת תאריכים; עם השדות חדר, תאריך (פרטי המזמין וכו' כמובן אבל לא על זה אנחנו מדברים)
      בעת הזמנה של חדר מוסיף שורה בטבלת תאריכים וכך גם בודק האם פנוי
      ואידך זיל גמור.

      שוין, עד ש'שלח'תי ארכיטקט הספיק להרחיב הרבה יותר.
      בהצלחה.

      פורסם במקור בפורום CODE613 ב21/12/2015 21:44 (+02:00)

      תגובה 1 תגובה אחרונה
      2
      • י מנותק
        י מנותק
        יאן גולד
        כתב ב נערך לאחרונה על ידי
        #4

        תודה רבה, תשובות מאירות עיניים

        אין כמו האתר הזה

        נ.ב. חבל שקשה להגיע אליו בלי כתובת מדוייקת

        נסו:

        http://search.clearch.org/?direct_search=2&reason=2&uid=260615&q=CODE613M

        ותראו את התוצאה

        פורסם במקור בפורום CODE613 ב21/12/2015 22:45 (+02:00)

        תגובה 1 תגובה אחרונה
        0
        • A מנותק
          A מנותק
          avr416
          כתב ב נערך לאחרונה על ידי
          #5

          @יאן גולד

          נ.ב. חבל שקשה להגיע אליו בלי כתובת מדוייקת

          נסו:

          http://search.clearch.org/?direct_search=2&reason=2&uid=260615&q=CODE613M

          ותראו את התוצאה

          זה בגלל שאתה לא מחפש בגוגל אלא בclearch מנוע החיפוש של אינטרנט רימון/אתרוג...

          ואכן - אין על האתר שלנו יש כאן חברים נפלאים עם ידע נרחב והרבה רצון ושמחה לעזור בכל שאלה / תקלה ובעיה.
          אשרינו שזכינו!!!

          פורסם במקור בפורום CODE613 ב21/12/2015 22:56 (+02:00)

          תגובה 1 תגובה אחרונה
          2
          • dovidD מנותק
            dovidD מנותק
            dovid ניהול
            כתב ב נערך לאחרונה על ידי
            #6

            @יאן גולד

            תודה רבה, תשובות מאירות עיניים

            אין כמו האתר הזה

            נ.ב. חבל שקשה להגיע אליו בלי כתובת מדוייקת

            נסו:

            http://search.clearch.org/?direct_search=2&reason=2&uid=260615&q=CODE613M

            ותראו את התוצאה

            https://www.google.com/search?q=code613m

            פורסם במקור בפורום CODE613 ב22/12/2015 12:49 (+02:00)

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            תגובה 1 תגובה אחרונה
            1
            • י מנותק
              י מנותק
              יאן גולד
              כתב ב נערך לאחרונה על ידי
              #7

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

              עשיתי שאילתא שנותנת לי טבלה עם תאריך כניסה ויציאה של כל ההזמנות לפי מספר החדר בשם DATES

              כמו כן יש לי סטור פרוג'יסר (בשם GETDATESׂ) שמקבל שני תאריכים ומחזיר את מה שבין לבין, כדי לדעת את כל הטווח שהחדר תפוס
              השאלה שלי איך לקחת את התאריכים שקיבלתי בטבלה DATES ולשלוח אותם כפרמטרים לסטור פרוסיגר
              האמת שאני מקבל כמה שורות בטבלה איך אני ניגש שורה אחרי שורה?

              הערך במשתנים לצורך הדגמה בלבד

              with dates as(
              select date_in,date_out from reservations 
              where rooms=3)
              select * from dates
              
              declare @in datetime = '20151112'
              declare @out datetime = '20151114'
              
              
              exec getDates @start=@in ,@end=@out
              

              פורסם במקור בפורום CODE613 ב22/12/2015 21:13 (+02:00)

              תגובה 1 תגובה אחרונה
              0
              • S מנותק
                S מנותק
                softs
                כתב ב נערך לאחרונה על ידי
                #8

                וואקשה

                ----Create Demo DB
                --Rooms Table
                DECLARE @Rooms AS TABLE(ID INT, Name NVARCHAR(MAX))
                INSERT INTO @Rooms VALUES(1,'Room A'),(2,'Room B')
                --Reservations Table
                DECLARE @Reservations AS TABLE(ID INT, CheckInDate DATE, CheckOutDate DATE, RoomID INT)
                INSERT INTO @Reservations VALUES
                (100,'2015-01-03','2015-01-09',1),(102,'2015-01-18','2015-02-09',1),(103,'2015-01-01','2015-01-17',2)
                
                DECLARE @Seasons AS TABLE(ID INT, Name NVARCHAR(MAX), StartDate DATE, EndDate DATE)
                INSERT INTO @Seasons VALUES
                (1,N'Winter','2015-01-01','2015-04-15'),(2,N'Spring','2015-06-18','2015-06-25')
                
                ; ----End of Demo DB
                
                ---- occupancy query (could be used as a view)
                
                -- Generate Calendar Table
                WITH Cal (CalendarDay) AS(
                SELECT CAST('2015-01-01' AS DATE) AS DateDay -- Calendar Start Date
                UNION ALL
                SELECT DATEADD(DAY,1,CalendarDay) FROM Cal WHERE DATEADD(DAY,1,CalendarDay) <  '2016-01-01' -- Calendar End Date
                )
                
                SELECT CalendarDay,Rooms.ID AS RoomID, Rooms.Name AS RoomName,Season.Name AS SeasonName,
                Res.ID AS ReservationID, CheckInDate, CheckOutDate,
                CASE WHEN Res.ID IS NULL THEN 1 ELSE 0 END IsRoomAvailable
                FROM Cal
                CROSS JOIN @Rooms AS Rooms -- create rooms calendar table (cartesian product)
                INNER JOIN @Seasons AS Season ON Cal.CalendarDay BETWEEN Season.StartDate AND Season.EndDate
                LEFT JOIN @Reservations AS Res ON Rooms.ID = Res.RoomID AND CalendarDay BETWEEN CheckInDate AND CheckOutDate -- join the reservations
                
                OPTION (MAXRECURSION 32767) -- allow recursion
                

                פורסם במקור בפורום CODE613 ב22/12/2015 23:45 (+02:00)

                תגובה 1 תגובה אחרונה
                3
                • א מנותק
                  א מנותק
                  ארכיטקט
                  כתב ב נערך לאחרונה על ידי
                  #9

                  למה לא כתבת לפי התקן?:

                  CROSS JOIN @Rooms AS Rooms --ON 0=0
                  

                  פורסם במקור בפורום CODE613 ב23/12/2015 01:33 (+02:00)

                  אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

                  תגובה 1 תגובה אחרונה
                  0
                  • י מנותק
                    י מנותק
                    יאן גולד
                    כתב ב נערך לאחרונה על ידי
                    #10

                    softs אתה גדול!!

                    לימדת אותי הרבה בכמה שורות האלה

                    פורסם במקור בפורום CODE613 ב23/12/2015 23:27 (+02:00)

                    תגובה 1 תגובה אחרונה
                    0
                    • S מנותק
                      S מנותק
                      softs
                      כתב ב נערך לאחרונה על ידי
                      #11

                      @יאן גולד

                      לימדת אותי הרבה בכמה שורות האלה

                      אני תמיד מתלבט אם לכתוב תשובות ברמה גבוהה ולאתגר את השואל בלהבין או לכתוב שווה לכל נפש
                      פה הלכתי על רמה גבוהה יחסית - משתני טבלה, שאילתה ריקורסיבית ללוח שנה, שלושה סוגי JOIN שונים באותה שאילתה ו JOIN לפי טווחי תאריכים
                      ואני שמח על הפידבק שמראה שהחלטתי נכון

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

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

                      פורסם במקור בפורום CODE613 ב25/12/2015 00:05 (+02:00)

                      תגובה 1 תגובה אחרונה
                      2
                      • י מנותק
                        י מנותק
                        יאן גולד
                        כתב ב נערך לאחרונה על ידי
                        #12

                        איפה אני מסמן שנפתר

                        פורסם במקור בפורום CODE613 ב25/12/2015 08:25 (+02:00)

                        תגובה 1 תגובה אחרונה
                        0
                        • A מנותק
                          A מנותק
                          avr416
                          כתב ב נערך לאחרונה על ידי
                          #13

                          @יאן גולד

                          איפה אני מסמן שנפתר

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

                          @softs

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

                          softs - כל הכבוד לך על כל ההשקעה בפורום בעניית תשובות!! תמשיך לאתגר אותנו..

                          פורסם במקור בפורום CODE613 ב25/12/2015 09:13 (+02:00)

                          תגובה 1 תגובה אחרונה
                          4
                          • א מנותק
                            א מנותק
                            ארכיטקט
                            כתב ב נערך לאחרונה על ידי
                            #14

                            @softs

                            שאילתה ריקורסיבית ללוח שנה

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

                            פורסם במקור בפורום CODE613 ב25/12/2015 12:57 (+02:00)

                            אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

                            תגובה 1 תגובה אחרונה
                            2

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

                            • אין לך חשבון עדיין? הרשמה

                            • התחברו או הירשמו כדי לחפש.
                            • פוסט ראשון
                              פוסט אחרון
                            0
                            • דף הבית
                            • קטגוריות
                            • פוסטים אחרונים
                            • משתמשים
                            • חיפוש
                            • חוקי הפורום