התלבטות בין מסדי נתונים MySQL/MongoDB

סיון

המניפה
מנהל
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי DIP
עיצוב גרפי
UX UI
D I G I T A L
בחלק שמדמה רשת חברתית
ועלתה לנו השאלה באיזה מסד נתונים להשתמש
רלציוני (MySQL / Postgress) או לא רלציוני (MongoDB)
לא רלציוני- כי מדובר על רשת חברתית עם כמות נתונים גבוהה, ושליפה / הוספת נתונים רבים ל DB בזמן אמת
רלציוני- כי בשליפה יש שימוש בהרבה Join בין ישויות, מה ש DB רלציוני יתמודד איתו יותר בקלות ואין מבנה נתונים דינמי
נשמח לשמוע חוות דעת ממנוסים בלבד
תודה רבה

עריכה:

ההתלבטות שלנו לגבי מונגו בגלל שאנחנו לא יודעות מה העלות של ביצוע JOIN מול עלות כזאת בSQL שהוא רלציוני
 
נערך לאחרונה ב:

java

משתמש סופר מקצוען
מנוי פרימיום
הנדסת תוכנה
למה לא Firebase?
השתמשנו במוצר שבחלקו דימה רשת חברתית והיה ממש יעיל.
(וגם בעוד הרבה מוצרים אחרים)

ולפני שתגיע השאלה. לא. לצערי אין לי מניות בפיירבייס.;)
 

ynigun

משתמש סופר מקצוען
הנדסת תוכנה
@סיון
כי זה מסד נתונים שנועד במיוחד לרשתות חברתיות
כל הרעיון שלו שאפשר לקשר בין הרשימות עם קשרים שונים
גם אם זה קשרים מסועפים ומורכבים.
 
נערך לאחרונה ב:

סיון

המניפה
מנהל
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי DIP
עיצוב גרפי
UX UI
D I G I T A L
למה לא Firebase?
השתמשנו במוצר שבחלקו דימה רשת חברתית והיה ממש יעיל.
(וגם בעוד הרבה מוצרים אחרים)

ולפני שתגיע השאלה. לא. לצערי אין לי מניות בפיירבייס.;)
Firebase כמוצר ולא רק כDB? אפשרי לינק או שזה פנימי?
אם לא, תוכלי בבקשה לפרט מהן היכולות בדיוק?
תודה רבה
 

java

משתמש סופר מקצוען
מנוי פרימיום
הנדסת תוכנה
Firebase כמוצר ולא רק כDB?
השתמשנו כDB (וגם כסרבר וגם כautentication וגם כnotification manager אבל זה לא רלוונטי.)
מתנצלת,
נשמטה לי המילה ׳בזה׳
השתמשנו בזה במוצר
 

סיון

המניפה
מנהל
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי DIP
עיצוב גרפי
UX UI
D I G I T A L
השתמשנו כDB (וגם כסרבר וגם כautentication וגם כnotification manager אבל זה לא רלוונטי.)
מתנצלת,
נשמטה לי המילה ׳בזה׳
השתמשנו בזה במוצר
תודה על התשובה
איך עובד הJOIN בFirebase?
 

java

משתמש סופר מקצוען
מנוי פרימיום
הנדסת תוכנה
תודה על התשובה
איך עובד הJOIN בFirebase?
האמת שכבר כמעט שנה לא כתבתי שאילתות בfirebase אז אני לא זוכרת במדויק.
בגדול זה לשלוף מטבלה אחת ולהציב את הערכים המתקבלים בשאילתה של הטבלה השניה.
אם חשוב לך באופן מדויק - אסתכל בקוד ישן שלי.
 

s976

משתמש סופר מקצוען
הנדסת תוכנה
D I G I T A L
אם משווים בין nosql ל-sql, נגיד בין postgres ל-mongo
בשביל פרויקט של רשת חברתית, הייתי הולך על postgres
ובדיוק מהסיבה שהוזכרה בפתיחת האשכול - הקישוריות בין הטבלאות. מן הסתם אם, למשל, אובייקט כל שהוא (פוסט, תמונה) מקבל לייק, צריך לקשר את זה למשתמש מסוים. הכל מקושר עם הכל. וזה לא רק עניין של join אלא גם של foreign key
לעשות דברת כזה ב-mongo יהיה מסורבל וקשה, וכנראה גם לא יעיל.
לגבי זה שחוששים מכמות נתונים גבוהה מאוד - אני לא יודע בדיוק האם ולמה mongo עשויה להיות יותר טובה, אבל גם אם כן, הייתי אומר שקודם יהיה לכם בהצלחה שתגיעו לזה, ואם וכאשר שתגיעו לגשר תחשבו איך לעבור אותו. להתחיל פרויקט כזה עם mongo יהיה חתיכת סיוט, ולא נראה לי שזה מוצדק.
מה שכן, בשבלב הדיזיין כדאי לחשוב על רמת אבסטרקציה מתאימה, כך שמעבר מDB אחד לשני יתמקד בשכתוב של מודול כל שהוא, ולא בשכתוב של כל הקוד.

גילוי נאות: איני מומחה בתחום
 

5127109

מהמשתמשים המובילים!
עיצוב גרפי
עימוד ספרים
firebase מאוד טוב לדברים האלה, אבל בשביל לעשות את זה יעיל וטוב צריכים נסיון, וצריכים ללמוד את המודל של הבליניג שלהם בשביל לא להתקע עם חשבון גדול בסוף חודש.
כאן יש סרטון איך עושים רשת חברתית ויש קוד בתאור
בעקרון אין מה לפחד מnosql גם לי היה קשה המעבר, ובפרט הכלל הבסיסי שאין כפיליות, פשוט מתמוסס מול העינים, זה היה הלם, אבל מתרגלים. בשביל רשת חברתית ענפה ממש graphQL הוא ממש בשביל זה. כמו שמשתמשים בספר הפנים.
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קיט פ'

קכט פְּלָאוֹת עֵדְוֹתֶיךָ עַל כֵּן נְצָרָתַם נַפְשִׁי:קל פֵּתַח דְּבָרֶיךָ יָאִיר מֵבִין פְּתָיִים:קלא פִּי פָעַרְתִּי וָאֶשְׁאָפָה כִּי לְמִצְוֹתֶיךָ יָאָבְתִּי:קלב פְּנֵה אֵלַי וְחָנֵּנִי כְּמִשְׁפָּט לְאֹהֲבֵי שְׁמֶךָ:קלג פְּעָמַי הָכֵן בְּאִמְרָתֶךָ וְאַל תַּשְׁלֶט בִּי כָל אָוֶן:קלד פְּדֵנִי מֵעֹשֶׁק אָדָם וְאֶשְׁמְרָה פִּקּוּדֶיךָ:קלה פָּנֶיךָ הָאֵר בְּעַבְדֶּךָ וְלַמְּדֵנִי אֶת חֻקֶּיךָ:קלו פַּלְגֵי מַיִם יָרְדוּ עֵינָי עַל לֹא שָׁמְרוּ תוֹרָתֶךָ:
נקרא  22  פעמים

לוח מודעות

למעלה