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

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

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

תכנון DB

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

    לפי הספר טבלה אחת גדולה, כך אני חושב.

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

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

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

      @חוקר תודה רבה!

      אני ב PHP כך שמה שכתבת בהמשך לא רלוונטי, לגבי השורות זה לא אמור לעבור את ה K200 - 300K.

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

      @dovid מה אתה אומר? עדיין כדאי טבלה אחת?

      ושאלה נוספת: אם אני עושה הכל בטבלה אחת, איזה אינדקס אני צריך לעשות על העמודה של המערכת, (בהתחשב בכך שיש לי סינונים משניים)?

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

      OdedDvirO yossizY 2 תגובות תגובה אחרונה
      0
      • OdedDvirO מנותק
        OdedDvirO מנותק
        OdedDvir
        השיב לWWW ב נערך לאחרונה על ידי OdedDvir
        #6

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

        1. שם ייחודי לכל טבלה Table1, Table2, ....Table987
          מסתמא תצטרך עוד טבלת עזר כדי לתחזק ולשייך כל טבלה
        2. הוספה \ הסרה של שדות מ-1000 טבלאות! (גם אם כרגע נראה לך שלא שייך מפאת השפה)
        3. שאילתת איחוד של 1000 טבלאות!
        SELECT * FROM Table1
        UNION
        SELECT * FROM Table2
        UNION
        SELECT * FROM Table3
        UNION
        SELECT * FROM Table4
        UNION ...........
        
        1. יש עוד כמה תרחישים מסמרי שיער, כמו גיבויים ושחזורים...

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

        WWWW תגובה 1 תגובה אחרונה
        5
        • WWWW מנותק
          WWWW מנותק
          WWW
          השיב לOdedDvir ב נערך לאחרונה על ידי WWW
          #7

          @OdedDvir תודה רבה!!!
          יש לך כושר הסברה נפלא!

          @yossiz אתה מסכים?

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

          yossizY תגובה 1 תגובה אחרונה
          2
          • yossizY מנותק
            yossizY מנותק
            yossiz
            השיב לWWW ב נערך לאחרונה על ידי yossiz
            #8

            @WWW מי אני... אני שומע את הטענות, וזה נשמע הגיוני. בפרט אם יש עצה של "שליפת הנתונים הרלוונטיים למערכת לטבלת עזר" כמו ש@OdedDvir כתב.

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

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

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

              תגובה 1 תגובה אחרונה
              0
              • yossizY מנותק
                yossizY מנותק
                yossiz
                השיב לWWW ב נערך לאחרונה על ידי yossiz
                #10

                @WWW אמר בתכנון DB:

                ושאלה נוספת: אם אני עושה הכל בטבלה אחת, איזה אינדקס אני צריך לעשות על העמודה של המערכת, (בהתחשב בכך שיש לי סינונים משניים)?

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

                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

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

                  @yossiz אמר בתכנון DB:

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

                  לא הבנתי 😞
                  אשמח שתסביר לי בדיוק מה לעשות.

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

                  yossizY תגובה 1 תגובה אחרונה
                  0
                  • yossizY מנותק
                    yossizY מנותק
                    yossiz
                    השיב לWWW ב נערך לאחרונה על ידי yossiz
                    #12

                    @WWW נגיד שיש לך טבלה כזאת:

                    CREATE TABLE something (
                        "id" uuid NOT NULL,
                        "info1" varchar,
                        "info2" varchar,
                        "info3" varchar,
                        "system_id" integer NOT NULL,
                         PRIMARY KEY ("id")
                    );
                    

                    כאשר system_id זה המזהה של המערכת, אז על כל עמודה שתרצה לסנן לפיו תעשה אינדקס משולב של (system_id, infoX). (ואז נראה לי שאין צורך להשתמש באינדקס ייחודי לעמודת system_id)

                    📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

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

                      @yossiz אמר בתכנון DB:

                      (ואז נראה לי שאין צורך להשתמש באינדקס ייחודי לעמודת system_id)

                      אני לא יכול, כי כאמור יש לי ערכים כפולים. דהיינו ייתכנו שתי ID על אותו system_id.
                      מה שעשיתי כרגע:
                      PRIMARY KEY על ID ו system_id ביחד.
                      זה הסינון שאני אצטרך לרוב.
                      זה טוב?

                      העניין שלפעמים ארצה לקבל COUNT לפי סינון של system_id בלבד, זה יפריע?

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

                      yossizY תגובה 1 תגובה אחרונה
                      0
                      • yossizY מנותק
                        yossizY מנותק
                        yossiz
                        השיב לWWW ב נערך לאחרונה על ידי
                        #14

                        @WWW אמר בתכנון DB:

                        PRIMARY KEY על ID ו system_id ביחד.
                        זה הסינון שאני אצטרך לרוב.
                        זה טוב?

                        נשמע מצויין, (אבל חכה למנוסים לפסוק)

                        @WWW אמר בתכנון DB:

                        העניין שלפעמים ארצה לקבל CONT של לפי סינון של system_id בלבד, זה יפריע?

                        צ"ל COUNT.
                        זה לא אמור להפריע. תמיד אפשר לסנן לפי איזה מן העמודות השמאליות ביותר של האינדקס שתרצה.

                        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

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

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

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

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