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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    תגובה 1 תגובה אחרונה
    0
  • י מנותק
    י מנותק
    יוסף בן שמעון
    השיב לclickone ב נערך לאחרונה על ידי
    #3

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

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

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

    clickoneC תגובה 1 תגובה אחרונה
    2
  • clickoneC מנותק
    clickoneC מנותק
    clickone
    השיב ליוסף בן שמעון ב נערך לאחרונה על ידי clickone
    #4

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

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

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

    yossizY תגובה 1 תגובה אחרונה
    1
  • yossizY מנותק
    yossizY מנותק
    yossiz
    השיב לclickone ב נערך לאחרונה על ידי 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
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    השיב לclickone ב נערך לאחרונה על ידי
    #11

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

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

    clickoneC 2 תגובות תגובה אחרונה
    1
  • clickoneC מנותק
    clickoneC מנותק
    clickone
    השיב לdovid ב נערך לאחרונה על ידי
    #12

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

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

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

    dovidD תגובה 1 תגובה אחרונה
    0
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    השיב לclickone ב נערך לאחרונה על ידי dovid
    #13

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

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

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

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

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

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

    תגובה 1 תגובה אחרונה
    1
  • clickoneC מנותק
    clickoneC מנותק
    clickone
    השיב לdovid ב נערך לאחרונה על ידי
    #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
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    השיב לclickone ב נערך לאחרונה על ידי dovid
    #16

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

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

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

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

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

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

    dovidD תגובה 1 תגובה אחרונה
    0
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    השיב לחוקר ב נערך לאחרונה על ידי
    #18

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

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

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

  • התחברות

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

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

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

  • התחברו או הירשמו כדי לחפש.