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

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

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

התייעצות: טבלת MetaData מול הרחבת הטבלה הקיימת

מתוזמן נעוץ נעול הועבר תכנות
18 פוסטים 6 כותבים 304 צפיות 5 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • clickoneC clickone

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

    הדרישה היא שכל משתמש בתוכנה יוכל לבנות לעצמו שדות.
    אני מתלבט בין 2 תצורות:

    1. להוסיף בטבלה X שדות, ולתת למשתמש לשלוט על הכותרות.
      כמובן שמחכה לי טיפול בסוגי הנתונים 😮
    2. לעשות טבלת MetaData עם הגדרת שדות לכל לקוח, ומשם למשוך לכל איש קשר, ולתצוגת הטבלה.
      גם שם אצטרך להתמודד עם סוג הנתונים.
      שם יש לי 2 דרכים:
    • הכל יישמר כטקסט ואני יעשה את ההמרה לפי העניין. (נשמע לי לא יעיל בכלל וקצת מטופש)
    • לעשות 4 עמודות ערך, תאריך, מספר, טקסט, בוליאן ולשמור בעמודה לפי העניין. (גם נשמע מטופש, אבל פחות מבחינת השמירה, שהרי עמודה שיש בה NULL בקושי תופסת מקום [ככה בעבר יצא לנו כאן בדיון עם הארכי @ארכיטקט ])

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

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

    קוד: C#
    דאטאבייס: SqlServer
    ממשק: Mvc + AngularJs

    תודה לכל מי שיש לו מחשבה מה הוא היה עושה
    אל תהססו להציע דברים אחרים משלכם

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

    https://stackoverflow.com/questions/12643117/dynamically-create-columns-sql
    אני אתחיל בינתיים להביא מקורות. עד ש @dovid ישלוף את הפיתרון מהאוב 😮

    אין טסט כמו פרודקשן.

    המייל שלי urivpn@gmail.com

    תגובה 1 תגובה אחרונה
    0
    • clickoneC clickone

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

      הדרישה היא שכל משתמש בתוכנה יוכל לבנות לעצמו שדות.
      אני מתלבט בין 2 תצורות:

      1. להוסיף בטבלה X שדות, ולתת למשתמש לשלוט על הכותרות.
        כמובן שמחכה לי טיפול בסוגי הנתונים 😮
      2. לעשות טבלת MetaData עם הגדרת שדות לכל לקוח, ומשם למשוך לכל איש קשר, ולתצוגת הטבלה.
        גם שם אצטרך להתמודד עם סוג הנתונים.
        שם יש לי 2 דרכים:
      • הכל יישמר כטקסט ואני יעשה את ההמרה לפי העניין. (נשמע לי לא יעיל בכלל וקצת מטופש)
      • לעשות 4 עמודות ערך, תאריך, מספר, טקסט, בוליאן ולשמור בעמודה לפי העניין. (גם נשמע מטופש, אבל פחות מבחינת השמירה, שהרי עמודה שיש בה NULL בקושי תופסת מקום [ככה בעבר יצא לנו כאן בדיון עם הארכי @ארכיטקט ])

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

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

      קוד: C#
      דאטאבייס: SqlServer
      ממשק: Mvc + AngularJs

      תודה לכל מי שיש לו מחשבה מה הוא היה עושה
      אל תהססו להציע דברים אחרים משלכם

      י מנותק
      י מנותק
      יוסף בן שמעון
      כתב ב נערך לאחרונה על ידי
      #3

      @clickone אמר בהתייעצות: טבלת MetaData מול הרחבת הטבלה הקיימת:

      אל תהססו להציע דברים אחרים משלכם

      להחליף מסד נתונים למסד כמו mongoDB, בדיוק בשביל זה נועדו המסדים האלה...

      clickoneC תגובה 1 תגובה אחרונה
      2
      • י יוסף בן שמעון

        @clickone אמר בהתייעצות: טבלת MetaData מול הרחבת הטבלה הקיימת:

        אל תהססו להציע דברים אחרים משלכם

        להחליף מסד נתונים למסד כמו mongoDB, בדיוק בשביל זה נועדו המסדים האלה...

        clickoneC מנותק
        clickoneC מנותק
        clickone
        כתב ב נערך לאחרונה על ידי clickone
        #4

        @יוסף-בן-שמעון
        אממממ 😮
        רעיון 😛
        אני דיי בטוח שיש לזה מקבילה טובה בSQL SERVER
        בכל מקרה, השאלה אם מונגו טוב לי לשאר הדברים
        וגם אל תשכח, שזה פרוייקט שנמצא כבר באמצע דרכו. א"א פתאם באמצע העולם להחליף 😮
        מה גם, שEF לא יתמוך בזה.
        ואין סיבה לסבול בכל הפרוייקט בלי EF בשביל הפיצ'ר הזה....

        אין טסט כמו פרודקשן.

        המייל שלי urivpn@gmail.com

        yossizY תגובה 1 תגובה אחרונה
        1
        • clickoneC clickone

          @יוסף-בן-שמעון
          אממממ 😮
          רעיון 😛
          אני דיי בטוח שיש לזה מקבילה טובה בSQL SERVER
          בכל מקרה, השאלה אם מונגו טוב לי לשאר הדברים
          וגם אל תשכח, שזה פרוייקט שנמצא כבר באמצע דרכו. א"א פתאם באמצע העולם להחליף 😮
          מה גם, שEF לא יתמוך בזה.
          ואין סיבה לסבול בכל הפרוייקט בלי EF בשביל הפיצ'ר הזה....

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

          @clickone אמר בהתייעצות: טבלת MetaData מול הרחבת הטבלה הקיימת:

          מה גם, שEF לא יתמוך בזה.

          אם מותר לי לשאול, מה זה EF?
          עריכה: entity framework?

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

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

            @yossiz כן.
            EF זה entity framework

            אין טסט כמו פרודקשן.

            המייל שלי urivpn@gmail.com

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

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

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

                אני בעד שבטבלה הראשית אין שום מאפיין גמיש מבחינת קיומו מהותו וכותרתו.
                אני בעד טבלה חיצונית, והאפשרות של טקסט היא לא כזאת טפשית.
                ראה את המאמר הזה בויקיפדיה: https://en.wikipedia.org/wiki/Entity–attribute–value_model
                הרעיון הוא לשמור ככה: מזהה לקוח, מזהה תוכנה, ערך מופרד באיזשהוא מפריד.
                אבל הEAV הוא לפעמים קיצוני יותר, כשיש כמה סוגי ישויות, ויש תכונות עם כמה ערכים, ואז הכל זה שדה טקסט מופרד במפריד כל שהוא או JSON/XML. אגב בוורפרס יש כמה טבלאות בודדות וכל שאר הפרטים נשמרים בטבלה אחת בשיטה של EAV. השליפה לא יקרה כי זה מאונדקס כמחרוזת ומחפשים תמיד ע"י לייק של "מתחיל ב" - זה מהיר כמו אינדקס רגיל.

                הנה דיון על זה בsoftware-engine:
                https://softwareengineering.stackexchange.com/q/93124/112215

                והנה שאלתך בסטאק: https://stackoverflow.com/q/870808/1271037
                בתשובה שהתקבלה הוא מסכם את האפשרויות עם מעלותיהם וחסרונותיהם.

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

                  תודה לכל המגיבים והמשקיעים.
                  אני בעז"ה אלמד את הנושא לעומק, ואשתדל לשתף בסוף בתובנות ואולי גם בקוד.

                  אין טסט כמו פרודקשן.

                  המייל שלי urivpn@gmail.com

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

                    אני מתחיל לאט לאט לשים כאן לינקים ודברים שיוצאים לי תוך כדי חקירת הנושא

                    • האם כדאי לבנות לבד או ללכת על משהו מוכן שכבר כתוב?
                      דוגמא:
                      https://www.nrecosite.com/semantic_storage_net.aspx

                    אין טסט כמו פרודקשן.

                    המייל שלי urivpn@gmail.com

                    dovidD תגובה 1 תגובה אחרונה
                    0
                    • clickoneC clickone

                      אני מתחיל לאט לאט לשים כאן לינקים ודברים שיוצאים לי תוך כדי חקירת הנושא

                      • האם כדאי לבנות לבד או ללכת על משהו מוכן שכבר כתוב?
                        דוגמא:
                        https://www.nrecosite.com/semantic_storage_net.aspx
                      dovidD מחובר
                      dovidD מחובר
                      dovid
                      ניהול
                      כתב ב נערך לאחרונה על ידי
                      #11

                      @clickone אני הייתי עושה משהו קליל - טבלה נוספת עם שדות של מזהה מאפיין וערך וזהו.

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

                        @clickone אני הייתי עושה משהו קליל - טבלה נוספת עם שדות של מזהה מאפיין וערך וזהו.

                        clickoneC מנותק
                        clickoneC מנותק
                        clickone
                        כתב ב נערך לאחרונה על ידי
                        #12

                        @dovid זה מה שעשיתי
                        ועוד טבלה של הגדרת מאפיינים
                        להבנתי ככה הכי נכון לממש EAV בDB יחסי. (ז"א, לא אני המצאתי את הגלגל באיך לממש 😮 )
                        זה עובד מצויין ברמת המסך עריכת האיש קשר
                        כעת אני מתמודד עם הבעיות להביא את זה לטבלה של כל השמות (איטיות בעיקר)
                        מקווה בימים הקרובים להעלות לכאן חלק מהקוד

                        אין טסט כמו פרודקשן.

                        המייל שלי urivpn@gmail.com

                        dovidD תגובה 1 תגובה אחרונה
                        0
                        • clickoneC clickone

                          @dovid זה מה שעשיתי
                          ועוד טבלה של הגדרת מאפיינים
                          להבנתי ככה הכי נכון לממש EAV בDB יחסי. (ז"א, לא אני המצאתי את הגלגל באיך לממש 😮 )
                          זה עובד מצויין ברמת המסך עריכת האיש קשר
                          כעת אני מתמודד עם הבעיות להביא את זה לטבלה של כל השמות (איטיות בעיקר)
                          מקווה בימים הקרובים להעלות לכאן חלק מהקוד

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

                          @clickone אמר בהתייעצות: טבלת MetaData מול הרחבת הטבלה הקיימת:

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

                          פה כבר עשית כמו ארכיטקט...

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

                          אני זוכר שעם ארכיטקט אכלנו קש בנידון (בשלב כל שהוא זה היה בשימוש בפקד של טלריק, הנה זכר לעניין: א, ב).

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

                            @clickone אני הייתי עושה משהו קליל - טבלה נוספת עם שדות של מזהה מאפיין וערך וזהו.

                            clickoneC מנותק
                            clickoneC מנותק
                            clickone
                            כתב ב נערך לאחרונה על ידי
                            #14

                            @dovid אמר בהתייעצות: טבלת MetaData מול הרחבת הטבלה הקיימת:

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

                            @dovid אמר בהתייעצות: טבלת MetaData מול הרחבת הטבלה הקיימת:

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

                            פה כבר עשית כמו ארכיטקט...

                            טוב... התבלבלתי לגמרי
                            מה עוזר המזהה מאפיין אם אין לו טבלה שבה נמצאים המזהים הראשיים?
                            או שפיספסתי בהצעה שלך משהו 😮

                            אין טסט כמו פרודקשן.

                            המייל שלי urivpn@gmail.com

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

                              @dovid למה בעצם לא להשתמש בPivot?
                              דוגמא:

                              contacts.Pivot(X => X.Phones, X => X.PhoneType, X => string.Concat("(", X.AreaCode, ") ", X.PhoneNumber), true)
                              

                              https://stackoverflow.com/questions/8082057/how-to-use-pivot-table-with-entity-framework
                              http://linqlib.codeplex.com/wikipage?title=Pivot&referringTitle=Home

                              אין טסט כמו פרודקשן.

                              המייל שלי urivpn@gmail.com

                              dovidD תגובה 1 תגובה אחרונה
                              0
                              • clickoneC clickone

                                @dovid למה בעצם לא להשתמש בPivot?
                                דוגמא:

                                contacts.Pivot(X => X.Phones, X => X.PhoneType, X => string.Concat("(", X.AreaCode, ") ", X.PhoneNumber), true)
                                

                                https://stackoverflow.com/questions/8082057/how-to-use-pivot-table-with-entity-framework
                                http://linqlib.codeplex.com/wikipage?title=Pivot&referringTitle=Home

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

                                @clickone ממש נפלא, לא הכרתי...

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

                                  @clickone אמר בהתייעצות: טבלת MetaData מול הרחבת הטבלה הקיימת:

                                  @dovid למה בעצם לא להשתמש בPivot?

                                  יש PIVOT ב MSSQL?
                                  כי בMySQL עד כמה שידוע לי, אין

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

                                    @clickone אמר בהתייעצות: טבלת MetaData מול הרחבת הטבלה הקיימת:

                                    @dovid למה בעצם לא להשתמש בPivot?

                                    יש PIVOT ב MSSQL?
                                    כי בMySQL עד כמה שידוע לי, אין

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

                                    @חוקר אכן בmssql יש (על הדרך תראה איזה יופי של תיעוד ביחס למתחרה 🙂 ), אבל מה ש@clickone הביא זה ברמת הקוד, כלומר הוא מתשאל רגיל ומסדר את זה אח"כ, אני חושב זה סתם קומבינה חמודה, ולא מתורגם לSQL.

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


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

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

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