mysql שמירת נתונים נוספים מעבר לבסיסיים
-
יש לי טבלת הזמנת תורים ובה עמודים של מזהה ההזמנה, סוג התור, תאריך, שעה וכו' שהם הבסיסיים.
אך יש לי צורך בחלק מהשורות להכניס נתונים נוספים שהם לא קריטיים, כדוגמת אגף, שזה רלוונטי רק לחלק מהם, וייתכן בהמשך אצטרך להוסיף מזהה תשלום ועוד, שהם יהיו רלוונטים רק לחלק מהם.
האם להוסיף כל פעם לכל צורך עמודה חדשה (המורכבות היא הטיפול בממשק להוסיף כל עמודה במספר מקומות וכו'), או לעשות עמודה אחת מסוג json עבור שדות נוספים, ושם אשמור נתונים נוספים ככל ואצטרך, ללא שינויים מהותיים בקוד.
מה אמור להיות הגישה הנכונה? -
@חוקר אמר בmysql שמירת נתונים נוספים מעבר לבסיסיים:
האם להוסיף כל פעם לכל צורך עמודה חדשה (המורכבות היא הטיפול בממשק להוסיף כל עמודה במספר מקומות וכו'),
למה אתה צריך להוסיף בכל מקום את כל השדות הנוספות, אתה לא יכול להשתמש בהם רק במקומות הרלוונטים? ופשוט להתעלם מהם בשאר המקומות - וכמובן שלא יהיו "required"
-
@avi-rz אמר בmysql שמירת נתונים נוספים מעבר לבסיסיים:
למה אתה צריך להוסיף בכל מקום את כל השדות הנוספות, אתה לא יכול להשתמש בהם רק במקומות הרלוונטים? ופשוט להתעלם מהם בשאר המקומות - וכמובן שלא יהיו "required"
יש לי ממשק ניהול ללקוחות (YII2) ועלי לתת ללקוחות שאצלם זה רלוונטי צפיה בנתונים, כשאני מוסיף עמודה לטבלה, עלי להוסיף במודל בPHP את העמודה החדשה, ועלי להגדיר אותה בכמה מקומות, ב property וב rules וב attributeLabels וב andFilterWhere
וזאת מלבד השילוב בתוך התצוגה עצמה.
בנוסף עלי להגדיר שלקוח שזה לא נדרש עבורו לא אכניס את זה בתצוגה.
משא"כ אם אני שם אותם בjson אני מוסיף חד פעמי עמודה אחת, ורק בתצוגה אני מעבד בקלות מה להוסיף ולמי.
אך מאידך, ובאמת פיספסתי את זה בשאלה, כשרוצים לסנן מי נרשם לפי אגף מסויים, האם יש הבדל בביצועים בין חיפוש בתוך json עם like כגון
ext LIKE 'Departments=2'
או שזה חיפוש של עמודה
Departments = '1'
-
@חוקר אמר בmysql שמירת נתונים נוספים מעבר לבסיסיים:
האם יש הבדל בביצועים בין חיפוש בתוך json עם like כגון
ext LIKE 'Departments=2'
או שזה חיפוש של עמודה
Departments = '1'ההגיון אומר שכן. עד כמה? שאלה טובה..
בכל מקרה אל תשתמש בLIKE אלא בפונקציות יעודיות לjson.
https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html
ואתה יכול גם ליצור אינדקס לערך ספציפי בJSON כדי לקבל תוצאות טובות יותר