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

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

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

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

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

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

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

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

    pcinfogmachP תגובה 1 תגובה אחרונה
    0
    • pcinfogmachP לא נמצא
      pcinfogmachP לא נמצא
      pcinfogmach
      השיב ל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 לא נמצא
        pcinfogmachP לא נמצא
        pcinfogmach
        השיב לpcinfogmach ב נערך לאחרונה על ידי pcinfogmach
        #3

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

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

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

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

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

          pcinfogmachP תגובה 1 תגובה אחרונה
          1
          • pcinfogmachP לא נמצא
            pcinfogmachP לא נמצא
            pcinfogmach
            השיב לyossiz ב נערך לאחרונה על ידי pcinfogmach
            #5

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

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

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

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

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

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

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

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

                pcinfogmachP תגובה 1 תגובה אחרונה
                2
                • pcinfogmachP לא נמצא
                  pcinfogmachP לא נמצא
                  pcinfogmach
                  השיב לyossiz ב נערך לאחרונה על ידי pcinfogmach
                  #8

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

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

                  A תגובה 1 תגובה אחרונה
                  0
                  • A מנותק
                    A מנותק
                    aaron
                    השיב לpcinfogmach ב נערך לאחרונה על ידי
                    #9

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

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

                    חינם זה לא 😉

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

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

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

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

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

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