תכנון מערכי משתמשים
-
בונה מערכת קטנה, @clickone יכול לנחש מהי..
כותב ב Node.js על גבי Sailsהתלבטותי היא כזאת, מכיוון ואני צריך להוציא משתמשים מהטבלה על פי יחוסם לקבוצה,
יצרתי טבלת קבוצות, שבכל קבוצה רלוונטית יש עמודת "חברים" שמכילה רשימה JSONית של הID של הUSERים.הבעיה היא בבואי למחוק ID ספציפי מתוך הרשימה, מתחיל הצרות. הID הוא מספרי, ומקומו ברשימה אינו תואם למספרו-הוא.
אילו היה מדובר בPHP & MySql היו עומדים בפני שני אפשרויות:
- ליצור בטבלת המשתמשים עמודה נוספת של חברות. ולהכפיל שורות של משתמשים.
- כנ"ל אך בטבלת הקבוצות.
אך מכיוון ומדובר ב Sails & ORM,, הייתי רוצה לנצל את היכולת לשמור מערך בתוך שורה בודדת ולא להתחיל עם שורות כפולות ומעבר.
מה דעתכם?
-
@dovid
הבעיה ביצירת משתמש לדוגמא, שאני צריך לוודאות שנוצר גם משתמש וגם שיוך, במידה ואחד מהם נכשל - למחוק את השני, ב Nodejs נוצר חגיגת callbackים מזוויעהעוד בעיה, מה קורה כשאני רוצה לשלוף את כל המשתמשים שזמינים להוספה לקבוצה?
אני צריך לשלוף את כל החברים בקבוצה, ואז לשלוף את כל מי שהוא לא ברשימה הזאת, ולסנן משתמשים כפולים, כי הרי כל אחד הוא שיוך בודד ולא משתמש בודד.
רציתי לפתור את זה על ידי רשימה בתוך רשומת הקבוצה.
כי בשימוש ב ORM זה ממש מסתדר.תכלס יש לי פתרון. אבל זה מסרבל נורא
-
@aaron אני לא מבין למה הבעיות שהזכרת הם חלק מהדילמה בה התחלת.
הקאלבקים זה חלק מהשפה, אל תנסה לעקוף.
כדי להימנע מcallback hell, תשתמש בספריית async או בpromise.בשביל לקבל את כל המשתמשים שזמינים להוספה אתה א. שולף אותם מטבלת המשתמשים, שם אין שום כפל.
ב. בשביל להסיר את הקיימים כבר בקבוצה הזו אתה עושה משהו כזה:var toAdd = allUsers.filter(x => !currentGroup.users.includes(x));
אם אתה משתמש בunderscore יש לך פונקציה מובנית בשם difference.