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

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

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

התייעצות בתכנון מסד נתונים עבור מאגר תורני

מתוזמן נעוץ נעול הועבר תכנות
9 פוסטים 3 כותבים 884 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • pcinfogmachP מנותק
    pcinfogmachP מנותק
    pcinfogmach
    כתב ב נערך לאחרונה על ידי pcinfogmach
    #1

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

    beda0c1a-cee2-4f79-9a7f-0840efeb4678-image.png

    גמ"ח מידע מחשבים ואופיס

    pcinfogmachP תגובה 1 תגובה אחרונה
    0
    • pcinfogmachP pcinfogmach

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

      beda0c1a-cee2-4f79-9a7f-0840efeb4678-image.png

      pcinfogmachP מנותק
      pcinfogmachP מנותק
      pcinfogmach
      כתב ב נערך לאחרונה על ידי pcinfogmach
      #2

      @pcinfogmach
      אוקיי מצאתי לכאורה את הדרך האופטימלית (כלומר מודל שימושי כאשר יש צורך לשאול שאילתות על בסיסי נתונים המכילים מבנים מסודרים בצורה היררכית). בכתבה זו (החלק השני):
      https://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
      הרעיון נקרא :

      The Nested Set Model


      המודל ההיררכי של ה-Nested Set מבוסס על שימוש בטווחי מספרים לתיאור מבנה היררכי בצורה שטוחה המתאימה למסד sql. כל אלמנט במבנה מוגדר על ידי שני מספרים: ערך "שמאל" (Left) וערך "ימין" (Right), המייצגים את גבולות הטווח שלו בתוך המבנה.

      לדוגמה, נניח שיש לנו את המבנה הבא:

      ספר: כותרת הספר
          פרק 1
              פסוק 1
              פסוק 2
          פרק 2
              פסוק 1
      

      אזי הטווח של הספר כולו מכסה את כל הרכיבים שבתוכו, והטווח של כל תת-רכיב נמצא בתוך הטווח של הרכיב שמעליו. כך למשל:

      הספר כולו: טווח 1-12
      פרק 1: טווח 2-7
          פסוק 1: טווח 3-4
          פסוק 2: טווח 5-6
      פרק 2: טווח 8-11
          פסוק 1: טווח 9-10
      

      להלן הייצוג הטבלאי של המסד:
      64f3a51c-a3f5-4748-8684-66eca37c94a4-image.png

      העקרונות המרכזיים במודל זה:

      • טווח של כל רכיב כולל את הטווחים של כל תתי-הרכיבים שבתוכו.

      • וממילא טווחים שאינם חופפים מצביעים על כך שהרכיבים אינם קשורים ישירות במבנה.

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

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

      תמונות להמחשה מתוך הכתבה הנ"ל (מקווה שלא תסקלו אותי על זה שכתוב פה טלויזיה עשיתי העתק הדבק איתכם הסליחה).
      f1e1d87f-75fa-456e-9c10-f33756d52f4e-nested_numbered.png
      94326caf-f007-4966-a04b-95902e244646-numbered_tree.png

      גמ"ח מידע מחשבים ואופיס

      pcinfogmachP תגובה 1 תגובה אחרונה
      0
      • pcinfogmachP pcinfogmach

        @pcinfogmach
        אוקיי מצאתי לכאורה את הדרך האופטימלית (כלומר מודל שימושי כאשר יש צורך לשאול שאילתות על בסיסי נתונים המכילים מבנים מסודרים בצורה היררכית). בכתבה זו (החלק השני):
        https://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
        הרעיון נקרא :

        The Nested Set Model


        המודל ההיררכי של ה-Nested Set מבוסס על שימוש בטווחי מספרים לתיאור מבנה היררכי בצורה שטוחה המתאימה למסד sql. כל אלמנט במבנה מוגדר על ידי שני מספרים: ערך "שמאל" (Left) וערך "ימין" (Right), המייצגים את גבולות הטווח שלו בתוך המבנה.

        לדוגמה, נניח שיש לנו את המבנה הבא:

        ספר: כותרת הספר
            פרק 1
                פסוק 1
                פסוק 2
            פרק 2
                פסוק 1
        

        אזי הטווח של הספר כולו מכסה את כל הרכיבים שבתוכו, והטווח של כל תת-רכיב נמצא בתוך הטווח של הרכיב שמעליו. כך למשל:

        הספר כולו: טווח 1-12
        פרק 1: טווח 2-7
            פסוק 1: טווח 3-4
            פסוק 2: טווח 5-6
        פרק 2: טווח 8-11
            פסוק 1: טווח 9-10
        

        להלן הייצוג הטבלאי של המסד:
        64f3a51c-a3f5-4748-8684-66eca37c94a4-image.png

        העקרונות המרכזיים במודל זה:

        • טווח של כל רכיב כולל את הטווחים של כל תתי-הרכיבים שבתוכו.

        • וממילא טווחים שאינם חופפים מצביעים על כך שהרכיבים אינם קשורים ישירות במבנה.

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

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

        תמונות להמחשה מתוך הכתבה הנ"ל (מקווה שלא תסקלו אותי על זה שכתוב פה טלויזיה עשיתי העתק הדבק איתכם הסליחה).
        f1e1d87f-75fa-456e-9c10-f33756d52f4e-nested_numbered.png
        94326caf-f007-4966-a04b-95902e244646-numbered_tree.png

        pcinfogmachP מנותק
        pcinfogmachP מנותק
        pcinfogmach
        כתב ב נערך לאחרונה על ידי pcinfogmach
        #3

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

        גמ"ח מידע מחשבים ואופיס

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

          @pcinfogmach אולי תוותר על מסד טבלאי ובמקום זה תשתמש במשהו שיכול לייצג עץ נתונים בצורה יותר טבעית
          אולי מבנה JSON יספק לך מענה מספיק טוב

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

          pcinfogmachP תגובה 1 תגובה אחרונה
          1
          • yossizY yossiz

            @pcinfogmach אולי תוותר על מסד טבלאי ובמקום זה תשתמש במשהו שיכול לייצג עץ נתונים בצורה יותר טבעית
            אולי מבנה JSON יספק לך מענה מספיק טוב

            pcinfogmachP מנותק
            pcinfogmachP מנותק
            pcinfogmach
            כתב ב נערך לאחרונה על ידי pcinfogmach
            #5

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

            גמ"ח מידע מחשבים ואופיס

            yossizY תגובה 1 תגובה אחרונה
            0
            • pcinfogmachP pcinfogmach

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

              yossizY מנותק
              yossizY מנותק
              yossiz
              כתב ב נערך לאחרונה על ידי yossiz
              #6

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

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

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

                אולי נושאים אלו יעניינו אותך
                https://tchumim.com/topic/1072
                https://tchumim.com/topic/1047

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

                pcinfogmachP תגובה 1 תגובה אחרונה
                2
                • yossizY yossiz

                  אולי נושאים אלו יעניינו אותך
                  https://tchumim.com/topic/1072
                  https://tchumim.com/topic/1047

                  pcinfogmachP מנותק
                  pcinfogmachP מנותק
                  pcinfogmach
                  כתב ב נערך לאחרונה על ידי pcinfogmach
                  #8

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

                  גמ"ח מידע מחשבים ואופיס

                  A תגובה 1 תגובה אחרונה
                  0
                  • pcinfogmachP pcinfogmach

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

                    A מנותק
                    A מנותק
                    aaron
                    כתב ב נערך לאחרונה על ידי
                    #9

                    @pcinfogmach כתב בהתייעצות בתכנון מסד נתונים עבור מאגר תורני:

                    מרוויחים חינם במסד

                    חינם זה לא 😉

                    aaron.tchumim@gmail.com
                    Hetzner - שרתים וירטואליים ופיזיים במחירים מעולים (קישור שותפים)

                    ווצאפ API - תיעוד שירות API לא רשמי.

                    תגובה 1 תגובה אחרונה
                    0
                    תגובה
                    • תגובה כנושא
                    התחברו כדי לפרסם תגובה
                    • מהישן לחדש
                    • מהחדש לישן
                    • הכי הרבה הצבעות


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

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

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