שאלה במבנה מסד נתונים
-
יש לי טבלת אנשי קשר.
יש את העמודות החשובות.
כגון ID, שם וכדו'.
בעמודות הללו גם משתמשים הרבה פעמים לצורך שאילתות.אבל יש עמודות פחות חשובות, נניח עמודה האם משתמש הסכים לתקנון. או כל מיני עמודות שלפעמים יש צרכים משתנים ואפילו זמניים.
השאלה היא האם לשמור את כל המידע הפחות חשוב בשדה אחד מסוג json שיכלול את כל המידע הנ"ל.
מה שטוב בזה, זו הדינמיות של הטבלה.
נניח עכשיו התחדש איזה צורך לשמור מידע קטן על משתמש (נניח, אם הסכים לתקנון), אפשר להוסיף אותו בקלות בלי לשנות את מבנה מסד הנתונים.מה הכללים בזה?
אשמח לשמוע.
-
@מנצפך בכל מסד אפשר לעשות סינון ומיון על ניתוחים מסובכים של שדות טקסט, ואפילו אינדקס, אלא שזה יקר.
אכן בpostgresql יש תמיכה מובנית לשדה מסוג JSON אבל גם שמה זה מאוכסן כטקסט פשוט, התמיכה היא עבור אכיפת החוקיות של הטקסט לחוקי JSON.
אמנם בpostgresql יש תמיכה בjsonb שזה json בינארי עם אינדוקס לפי המפתחות וערכיהם וזה אכן ייתרון, אבל לצד זה יש לו גם חסרונות, ראה פה: https://heapanalytics.com/blog/engineering/when-to-avoid-jsonb-in-a-postgresql-schema