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

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

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

SQL | ערכים מרובים בעמודה

מתוזמן נעוץ נעול הועבר תכנות
34 פוסטים 5 כותבים 567 צפיות 4 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • WWWW WWW

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

    מה לגבי זה:

    @www אמר בSQL | ערכים מרובים בעמודה:

    מה קורה לגבי לחייב עדכון יום עבודה 1 לפחות? (אילו זה היה בלי טבלה נוספת, אז פשוט הייתי עושה NOT NULL). אני מנחש שתגיד לי להגדיר אילוץ, אין משהו יותר פשוט?

    יש לך רעיון?

    dovidD מנותק
    dovidD מנותק
    dovid
    ניהול
    כתב ב נערך לאחרונה על ידי
    #25

    @www אמר בSQL | ערכים מרובים בעמודה:

    @www אמר בSQL | ערכים מרובים בעמודה:

    מה קורה לגבי לחייב עדכון יום עבודה 1 לפחות? (אילו זה היה בלי טבלה נוספת, אז פשוט הייתי עושה NOT NULL). אני מנחש שתגיד לי להגדיר אילוץ, אין משהו יותר פשוט?
    יש לך רעיון?

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

    • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
    • בכל נושא אפשר ליצור קשר dovid@tchumim.com
    WWWW תגובה 1 תגובה אחרונה
    0
    • dovidD dovid

      @www אמר בSQL | ערכים מרובים בעמודה:

      @www אמר בSQL | ערכים מרובים בעמודה:

      מה קורה לגבי לחייב עדכון יום עבודה 1 לפחות? (אילו זה היה בלי טבלה נוספת, אז פשוט הייתי עושה NOT NULL). אני מנחש שתגיד לי להגדיר אילוץ, אין משהו יותר פשוט?
      יש לך רעיון?

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

      WWWW מנותק
      WWWW מנותק
      WWW
      כתב ב נערך לאחרונה על ידי WWW
      #26

      @dovid אמר בSQL | ערכים מרובים בעמודה:

      בדיוק כתבתי לך על זה...

      חשבתי שעל זה ענית...

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

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

      @dovid אמר בSQL | ערכים מרובים בעמודה:

      @WWW אני בפרקטיקה עושה מאוד מעט אימותים ובדיקות תקפות בצד המסד.
      גם בגלל שאני הרבה יותר מתכנת מאשר DBA, גם בגלל שאני בעצמי המתכנת ולא מישהו זר, וגם בגלל שאני בד"כ צוות של איש אחד, וגם בגלל שלרוב הדברים זה לדעתי נכון יותר.
      ראה גם:
      https://www.red-gate.com/simple-talk/databases/sql-server/learn/where-in-the-application-should-data-validation-be-done/
      https://stackoverflow.com/q/464042/1271037
      https://stackoverflow.com/q/26851291/1271037

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

      WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

      dovidD תגובה 1 תגובה אחרונה
      0
      • WWWW WWW

        @dovid אמר בSQL | ערכים מרובים בעמודה:

        בדיוק כתבתי לך על זה...

        חשבתי שעל זה ענית...

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

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

        @dovid אמר בSQL | ערכים מרובים בעמודה:

        @WWW אני בפרקטיקה עושה מאוד מעט אימותים ובדיקות תקפות בצד המסד.
        גם בגלל שאני הרבה יותר מתכנת מאשר DBA, גם בגלל שאני בעצמי המתכנת ולא מישהו זר, וגם בגלל שאני בד"כ צוות של איש אחד, וגם בגלל שלרוב הדברים זה לדעתי נכון יותר.
        ראה גם:
        https://www.red-gate.com/simple-talk/databases/sql-server/learn/where-in-the-application-should-data-validation-be-done/
        https://stackoverflow.com/q/464042/1271037
        https://stackoverflow.com/q/26851291/1271037

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

        dovidD מנותק
        dovidD מנותק
        dovid
        ניהול
        כתב ב נערך לאחרונה על ידי
        #27

        @www אמר בSQL | ערכים מרובים בעמודה:

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

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

        • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
        • בכל נושא אפשר ליצור קשר dovid@tchumim.com
        WWWW תגובה 1 תגובה אחרונה
        3
        • dovidD dovid

          @www אמר בSQL | ערכים מרובים בעמודה:

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

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

          WWWW מנותק
          WWWW מנותק
          WWW
          כתב ב נערך לאחרונה על ידי
          #28

          @dovid אתה צודק, יש היגיון במה שאתה אומר.
          אפי' במקרה שלי שזה קצת שונה מרשימת עובדים קלאסית, עדיין יש מקום לטענתך.

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

          WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

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

            @dovid יש דרך לקבל בקלות תצוגה של הטבלה עם ההקשרים שיהיה לדוגמה עמודה "שפות", עם השפות מופרדים באמצעות פסיק?
            ניסיתי את זה, זה עובד נהדר על עמודה אחת כזאת, ברגע שיש לי כמה GOINים, הוא משכפל לי את הערכים בכל עמודה...

            WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

            dovidD תגובה 1 תגובה אחרונה
            1
            • WWWW WWW

              @dovid יש דרך לקבל בקלות תצוגה של הטבלה עם ההקשרים שיהיה לדוגמה עמודה "שפות", עם השפות מופרדים באמצעות פסיק?
              ניסיתי את זה, זה עובד נהדר על עמודה אחת כזאת, ברגע שיש לי כמה GOINים, הוא משכפל לי את הערכים בכל עמודה...

              dovidD מנותק
              dovidD מנותק
              dovid
              ניהול
              כתב ב נערך לאחרונה על ידי
              #30

              @www מה שהבאת לא הכרתי, זה יפה מאוד.
              יש מצב שאתה מביא דמי של השאילתה שלא עובדת? כי מסברא זה אמור לעבוד מעולה.

              • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
              • בכל נושא אפשר ליצור קשר dovid@tchumim.com
              WWWW תגובה 1 תגובה אחרונה
              1
              • dovidD dovid

                @www מה שהבאת לא הכרתי, זה יפה מאוד.
                יש מצב שאתה מביא דמי של השאילתה שלא עובדת? כי מסברא זה אמור לעבוד מעולה.

                WWWW מנותק
                WWWW מנותק
                WWW
                כתב ב נערך לאחרונה על ידי
                #31

                @dovid

                SELECT A.*,
                       GROUP_CONCAT(A_languages.language) as `language`,
                       GROUP_CONCAT(A_workdays.workday) as workdays
                FROM A 
                LEFT JOIN
                     A_languages
                     ON A.id = A_languages.A_id 
                LEFT JOIN
                     A_workdays
                     ON A.id = A_workdays.A_id 
                GROUP BY A.id;
                

                WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                dovidD תגובה 1 תגובה אחרונה
                0
                • WWWW WWW

                  @dovid

                  SELECT A.*,
                         GROUP_CONCAT(A_languages.language) as `language`,
                         GROUP_CONCAT(A_workdays.workday) as workdays
                  FROM A 
                  LEFT JOIN
                       A_languages
                       ON A.id = A_languages.A_id 
                  LEFT JOIN
                       A_workdays
                       ON A.id = A_workdays.A_id 
                  GROUP BY A.id;
                  
                  dovidD מנותק
                  dovidD מנותק
                  dovid
                  ניהול
                  כתב ב נערך לאחרונה על ידי dovid
                  #32

                  @www
                  כעת קלטתי את הבעיה, בעת JOIN לולי הGROUPING יש לכל שורת עובד את כל השורות של השפה ואת כל השורות של הימים, וGROUP_CONCAT מאחד אותם.
                  אני רואה פה שיש לזה מילת מפתח DISTINCT.
                  כפי שאתה רואה יש שמה גם אפשרות מיון ובחירת תו מפריד, זה ממש מלהיב, לא הכרתי את התכונה הזו והיא נראית לי לא קיימת בSQL SERVER עריכה: יש STRING_AGG החל מ2017.

                  • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                  • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                  WWWW תגובה 1 תגובה אחרונה
                  2
                  • dovidD dovid

                    @www
                    כעת קלטתי את הבעיה, בעת JOIN לולי הGROUPING יש לכל שורת עובד את כל השורות של השפה ואת כל השורות של הימים, וGROUP_CONCAT מאחד אותם.
                    אני רואה פה שיש לזה מילת מפתח DISTINCT.
                    כפי שאתה רואה יש שמה גם אפשרות מיון ובחירת תו מפריד, זה ממש מלהיב, לא הכרתי את התכונה הזו והיא נראית לי לא קיימת בSQL SERVER עריכה: יש STRING_AGG החל מ2017.

                    WWWW מנותק
                    WWWW מנותק
                    WWW
                    כתב ב נערך לאחרונה על ידי
                    #33

                    @dovid עובד פיקס ב"ה.

                    רק חבל שMYSQL כ"כ מאחור לגבי views, אני רוצה לעשות לזה view שיהיה קל לאחזר (ואולי גם לעדכן, לא יודע איך זה יעבוד במרובה ערכים?) את הטבלה.
                    אבל בגלל שיש שמה GROUP BY, הוא משתמש באלגוריתם של טבלה זמנית, והשאילתא לוקחת המון זמן.

                    WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                    dovidD תגובה 1 תגובה אחרונה
                    0
                    • WWWW WWW

                      @dovid עובד פיקס ב"ה.

                      רק חבל שMYSQL כ"כ מאחור לגבי views, אני רוצה לעשות לזה view שיהיה קל לאחזר (ואולי גם לעדכן, לא יודע איך זה יעבוד במרובה ערכים?) את הטבלה.
                      אבל בגלל שיש שמה GROUP BY, הוא משתמש באלגוריתם של טבלה זמנית, והשאילתא לוקחת המון זמן.

                      dovidD מנותק
                      dovidD מנותק
                      dovid
                      ניהול
                      כתב ב נערך לאחרונה על ידי
                      #34

                      @www נושא חדש.

                      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                      תגובה 1 תגובה אחרונה
                      1
                      תגובה
                      • תגובה כנושא
                      התחברו כדי לפרסם תגובה
                      • מהישן לחדש
                      • מהחדש לישן
                      • הכי הרבה הצבעות


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

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

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