ABA


"התייעצות בקשרים בין טבלאות MYSQL"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #21702 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 21702
Crazy Lion  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.7.02
19328 הודעות, 9 פידבק
   10:25   28.05.16   
אל הפורום  
  התייעצות בקשרים בין טבלאות MYSQL  
 
   ערכתי לאחרונה בתאריך 28.05.16 בשעה 12:14 בברכה, Crazy Lion
 
יש לי טבלאות הבאות:
טבלאת משתמשים הכוללת את השדות הבאים :
id (auto_incerment) מפתח ראשי
name
address
phone
email
username מפתח ראשי
password
account_permissions
status

עכשיו יש מספר טבלאות שמתבססות על הטבלה הזו לדוגמא טבלת של הודעות פרטיות
id (auto_incerment)
to_user varchar זה מחזיק בעצם NAME מהטבלה לעיל
from_user varchar מחזיק בעצם NAME מהטבלה לעיל
subject
message
date
del


עכשיו למעשה המען ולמי נשלח זה מחזיק שמות עפ"י שאלתא מטבלת USERS , אני רוצה בעצם לוודא שברגע שנגיד נשלח מכתב מיוזרים אחד לשני ונגיד שיניתי איזה יוזר אז שזה ישתנה גם כאן ולא יהיה בעצם מצב שיהיו הודעות עם השם של היוזר הישן.

אולי להוסיף עוד שתי עמודות של to_user_id/from_user_id ושזה יחזיק בעצם א id מ users?
איך שהטבלאות בנויות הפיצרים עובדים אבל אני לפני שינוי רוצה להתייעץ.

תודה מראש.

@King_Cobra@
@משה הלולן@

מילוי סקרים בתשלום למי שמעונין ,
משלם בזמן וקל להגיע ליעד :
https://goo.gl/EJh6V2


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אין צורך בשני מפתחות Deuce  28.05.16 13:43 1
     מכתב Crazy Lion  28.05.16 13:48 2
         כשאתה אומרת username אנשים שקוראים את זה חושבים על string ShocKi  28.05.16 15:12 3
         מכתב Deuce  28.05.16 18:09 6
             מכתב Crazy Lion  28.05.16 19:02 7
  זה מסוג הדברים שאתה אמור לקבוע דרך מפתח זר ו Constraints. ShocKi  28.05.16 15:15 4
     תודה רבה, Crazy Lion  28.05.16 15:55 5
  מכתב Crazy Lion  01.06.16 10:17 8
     שאלתא עובדת לי במסד נתונים אבל לא עובדת לי ב דף HTML Crazy Lion  01.06.16 13:29 9
         אם היא עובדת בסביבת העבודה ולא ב-PHP, אז הבעיה היא כנראה בקוד Deuce  01.06.16 20:36 10
         תעבוד עם DEBUG ShocKi  01.06.16 20:51 12
     הפשטות היא עם join. ShocKi  01.06.16 20:48 11
         תודה רבה! Crazy Lion  01.06.16 22:39 13

       
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   13:43   28.05.16   
אל הפורום  
  1. אין צורך בשני מפתחות  
בתגובה להודעה מספר 0
 
בטבלת users האם המזהה שלך הוא id או name? לא צריך את שניהם. אם אתה רוצה לוודא ששמות המשתמשים הם ייחודיים, תוסיף unique index על name ולא pk. אני מציע לך שבטבלת המשתמשים המפתח יהיה id ולטובת נוחות הייתי משנה את שמו ל-user_id. בטבלת ההודעות כפי שאמרת אתה יכול להשתמש במזהים במקום בשמות המשתמשים. כאשר תרצה לשלוף את שמות המשתנים תשתמש ה-join בין שתי הטבלאות. משיקולים דומים הייתי משתנה בטבלת ההודעות מ-id ל-message_id.






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Crazy Lion  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.7.02
19328 הודעות, 9 פידבק
   13:48   28.05.16   
אל הפורום  
  2. מכתב  
בתגובה להודעה מספר 1
 
   בטבלת users
יש לי ID שזה מספור אוטומטי
זיהוי המשתמש מתבצע עפ"י username שזה בעצם הת.ז . ולכן זה חשוב שיהיה מפתח

הבעיה היחידה היא נגיד שאני רוצה לשלוח הודעה חדשה אז היוזר בוחר מ dropdown list שם של משתמש ואז בשביל להכניס לטבלה אני צריך לפי השם לקחת את ה username וכל זה חתיכת סיבוך אחד גדול =/
כנראה שאין ברירה ואני משלם על זה שלא תיכננתי את המסד כראוי .
השאלה היחידה זה אין דרך להתחמק משאילתות מסובכות כאלה?

מילוי סקרים בתשלום למי שמעונין ,
משלם בזמן וקל להגיע ליעד :
https://goo.gl/EJh6V2


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   15:12   28.05.16   
אל הפורום  
  3. כשאתה אומרת username אנשים שקוראים את זה חושבים על string  
בתגובה להודעה מספר 2
 
   ולא על קוד מספרי. זה מסוג הדברים שחשוב לציין.


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   18:09   28.05.16   
אל הפורום  
  6. מכתב  
בתגובה להודעה מספר 2
 
אתה צריך להצדיק את הבחירה במפתח בטבלה שלך. אין סיבה שיהיה לך "ID שזה מספור אוטומטי" - אם מבחינתך הוא לא עמודה טובה למפתח אז תמחק אותו. אם אתה רוצה שהמפתח הייחודי יהיה ת.ז אז לך על זה, אם כי אני לא בטוח שזו בחירה נבונה: לפעמים אנשים רוצים להרשם מחדש לאתר עם אותה ת.ז, לפעמים אנשים לא רוצים להזין ת.ז, לאזרחים מחו"ל אין ת.ז, אם תרצה לפרוס את האתר במדינות נוספות זה בעייתי - בכל אופן דיון אחר ואם זה משרת היטב את המטרות של האתר שלך, מעולה.

לגבי ה-dropdown list לא כ"כ הבנתי למה זה סיבוך גדול - תייצר VIEWS או שליפות מתאימות כדי לקבל את הנתונים האלה. הבעיה הראשונה שתיארת שמשתמשים יכולים להחליף שמות היא יותר קשה, ואתה אכן משלם על בניית מסד הנתונים.

בכל אופן, שום דבר לא תהומי בסה"כ הרמת את המסד לפני כמה ימים, וגם אני משנה מדי פעם את המבנה בחיכוך הראשוני עם הנתונים.






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Crazy Lion  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.7.02
19328 הודעות, 9 פידבק
   19:02   28.05.16   
אל הפורום  
  7. מכתב  
בתגובה להודעה מספר 6
 
   אני עושה מספור אוטומטי כ ID כי גם אם משנים משימה או משנים שם משתמש אז זה נכנס לאותו ID

מי שיכול להחליף שמות זה רק המנהלים אבל יש אפשרות כזאת כי אנחנו במציאות ופתאום רוצים לתת למישהו שם משתמש וסיסמא שהם לא ת"ז אז צריך אפשרות שיהיה אפשר לשנות .

בנוגע ל DROPDOWN כי ברגע שאני עושה VIEW כאשר אני שולף את השם של הבן אדם אני צריך להמיר את זה למספר username שלו ולקשר את זה עפ"י ה USERS ל ID .

כאשר לפני שמרתי את מה שנכנס מה DROPDOWN שזה השם ששלפתי מהטבלת USERS

מילוי סקרים בתשלום למי שמעונין ,
משלם בזמן וקל להגיע ליעד :
https://goo.gl/EJh6V2


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   15:15   28.05.16   
אל הפורום  
  4. זה מסוג הדברים שאתה אמור לקבוע דרך מפתח זר ו Constraints.  
בתגובה להודעה מספר 0
 
   אתה אמור לקבוע מה יקרה במקרה של עדכון, מחיקה וכו'.
ב MYSQL:
https://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html


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

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


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Crazy Lion  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.7.02
19328 הודעות, 9 פידבק
   15:55   28.05.16   
אל הפורום  
  5. תודה רבה,  
בתגובה להודעה מספר 4
 
   ערכתי לאחרונה בתאריך 28.05.16 בשעה 17:07 בברכה, Crazy Lion
 

מילוי סקרים בתשלום למי שמעונין ,
משלם בזמן וקל להגיע ליעד :
https://goo.gl/EJh6V2


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Crazy Lion  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.7.02
19328 הודעות, 9 פידבק
   10:17   01.06.16   
אל הפורום  
  8. מכתב  
בתגובה להודעה מספר 0
 
   משהו מוזר קורה לי עשיתי בעצם ש
to_user
from_user
יהיו מפתחות זרים מטבלה users ושם את העמודה userID
כשאני מבצע את השאלתא הבאה אני מקבל תוצאות רצויות אבל לא ברור לי איך בלי בדיקות זה מביא לי תוצאות טובות:
שמאלל

select *
from private_message , users
where private_message.from_user = users.userID

זה בעצם מראה לי את ההודעות שנשלחו עבורי (כשאני מתחבר כשמתשמש)
אבל כשאני מוסיף לזה נגיד
AND כדי להשוואת בין ה
TO_USER שהוא אכן קיים כיוזר הוא לא מציג לי כלום.

אני לא מבין איפה אני טועה.

ד.א
בכוונה זה בלי JOIN מנסה לשמור על פשטות השאלתא .

מילוי סקרים בתשלום למי שמעונין ,
משלם בזמן וקל להגיע ליעד :
https://goo.gl/EJh6V2


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Crazy Lion  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.7.02
19328 הודעות, 9 פידבק
   13:29   01.06.16   
אל הפורום  
  9. שאלתא עובדת לי במסד נתונים אבל לא עובדת לי ב דף HTML  
בתגובה להודעה מספר 8
 
   זו השלאתא
http://paste.ofcode.org/MM9SxEgzaF54dvw8VpaQUs
התוצאה יוצאת מעולה אבל כשאני רושם את זה ב PHP זה לא זורם
הוא לא מציג לי כלום.
דיי אני כבר משתגע .:(

מילוי סקרים בתשלום למי שמעונין ,
משלם בזמן וקל להגיע ליעד :
https://goo.gl/EJh6V2


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   20:36   01.06.16   
אל הפורום  
  10. אם היא עובדת בסביבת העבודה ולא ב-PHP, אז הבעיה היא כנראה בקוד  
בתגובה להודעה מספר 9
 
השאילתא נראית בסדר






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   20:51   01.06.16   
אל הפורום  
  12. תעבוד עם DEBUG  
בתגובה להודעה מספר 9
 
   שים BREAKPOINT רגע לפני שהשאילתה רצה, תסתכל על השאילתה האם היא זהה לשאילתה שעובדת לך במסד הנתונים?

אתה יכול גם לעשות את זה עם PRINT.

לפעמים מה שאתה חושב שרץ ומה שרץ בפועל הם שני דברים שונים.. בגלל זה חשוב לדבאג כשמשהו לא עובד. שים לב גם, שכשמשהו לא עובד זה גם כותב לך רמז מה הבעיה... לא ציינת מה נכתב לך...


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   20:48   01.06.16   
אל הפורום  
  11. הפשטות היא עם join.  
בתגובה להודעה מספר 8
 
   כי ככה אתה מבין את הקשר שבין שתי הטבלאות.


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Crazy Lion  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.7.02
19328 הודעות, 9 פידבק
   22:39   01.06.16   
אל הפורום  
  13. תודה רבה!  
בתגובה להודעה מספר 11
 
  

מילוי סקרים בתשלום למי שמעונין ,
משלם בזמן וקל להגיע ליעד :
https://goo.gl/EJh6V2


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net