ABA


"מחפש עצה לגבי יצירת מאגר משתמשים על MYSQL"
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #13449 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 13449
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   09:56   13.01.08   
אל הפורום  
  מחפש עצה לגבי יצירת מאגר משתמשים על MYSQL  
 
   אני צריך שיהיה לי לכל "יוזר" ...
בערך 10 נושאים שונים ששמורים לאותו לקוח
כאשר בכל נושא יש מס' נתונים לדוגמא

טבלה של יוזר X ...

שם משתמש
סיסמא
מייל
רשימת חברים - > פה אני לא יודע איך אני אוכל תחת אותו תא
מס' נתונים

האם לעשות לכל "יוזר" טבלה משלו ?!
או לעשות טבלה של רשימת חברים .. ושם להבדיל ביניהם על ידי יוזר
וקריאה אחרי זה ב where (בשאילתת הMYSQL) לפי שם (מוצפן).


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  אתה צריך טבלה חדשה לרשימת חברים =] akoka 13.01.08 10:55 1
  אממ... -DoTaN- 13.01.08 15:48 2
     הרעיון בקצרה הוא akoka 13.01.08 16:01 3
         בדיוק... ותוספת קטנה... -DoTaN- 13.01.08 20:15 4
             אני יודע שהוא בפורמט הזה בגלל זה כתבתי =] אבל זה שטויות akoka 13.01.08 20:42 5
                 אני יודע חח -DoTaN- 13.01.08 21:28 6
     בID להשתמש ב''מפתח זר'' ? code_blue  14.01.08 11:17 7
         גרמת לי ללכת לקרוא מאמר שלם על איזה משו עכשיו לא משנה akoka 14.01.08 15:24 9
         מכתב -DoTaN- 14.01.08 17:21 10
  פשש דותן ויוחאי, סחטיין סחטיין ושוב סחטיין... :) תגובות מושקעות. Sn00py  14.01.08 11:35 8

       
akoka

   10:55   13.01.08   
אל הפורום  
  1. אתה צריך טבלה חדשה לרשימת חברים =]  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 13.01.08 בשעה 10:55 בברכה, akoka
 
והמזהה שלה יהיה הuserid של המשתמש :]


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

   15:48   13.01.08   
אל הפורום  
  2. אממ...  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 13.01.08 בשעה 15:53 בברכה, -DoTaN-
 
טבלה של משתמשים, Users לדוגמא, שתכיל את השדות הבאים:
id - הID של המשתמש, שיהיה UNIQUE עם auto_incresment
username - שם משתמש, עדיף VARCHAR
password - סיסמא, גם VARCHAR, אם אתה מצפין אותה בMD5 אז VARCHAR(32).
email - שוב, גם VARCHAR
נתונים נוספים בסיסים, אפשר לשמור גם פה... כמו תאריך לידה (סוג DATETIME אם אתה צריך לבצע עליו פעולות, או VARCHAR אם אתה רוצה את זה כטקסט), או ICQ (סוג INT(9) או VARCHAR(9), מסנג'ר, מקום מגורים וכו'.

כל משתמש מקבל שורה משלו בטבלה, ולא טבלה משלו.

טבלה נוספת, של רשימת חברים בשם Friends תכיל את השדות הבאים:
id - הID של אותה "חברות" בין משתמשים, גם UNIQUE עם auto_incresment
user_id - החבר שכמעט מחובר, יכיל את הID של אותו משתמש, שיהיה INT
friend_id - גם INT, יכיל את הID של המשתמש שאותו אתה רוצה להוסיף..

עכשיו, אם יש לך בעוגייה בשם userId את הID של המשתמש, ואתה רוצה לקבל את כל המידע עליו, תעשה:


SELECT * FROM `users` WHERE `id` = '".$_COOKIE['userId']."';

ואם תרצה לקבל את הרשימת חברים של המשתמש הזה:


SELECT * FROM `friends` WHERE `user_id` = '".$_COOKIE['userId']."';

אם תרצה לעשות דף של הוספה לחברים, שיהיה לדוגמא addFriend.php?friend_id=6 , זה אומר שאתה רוצה להוסיף את החבר שהID שלו הוא 6... ואת הID של המשתמש יש לך כבר, דרך COOKIE, SESSION או בכל דרך אחרת...
דוגמא לQUERY:


INSERT INTO `friends` (`user_id`, `friend_id`) VALUES ('".$_COOKIE['userId']."', '".$_GET['friend_id']."');

אפשר גם למחוק וכו' - אבל אני חושב שהבנת את הרעיון



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

   16:01   13.01.08   
אל הפורום  
  3. הרעיון בקצרה הוא  
בתגובה להודעה מספר 2
 
   ברגע שהמשתמש מתחבר לשמור נתון מזהה של המשתמש במקרה שלנו זה הid,אתה שומר אותו בsession/Cookies ואת כול השאילתות שאמורות להכיל תנאי מקשר למשתמש אתה משתמש בסשן/קוקי שלו.

אגב מניסיון אישי שמכניסים date לתוך datetime בפורמט של

XX-XX-XXXX
הוא נכנס הפוך
xxxx-xx-xx

אצלי בעבודה עמדו עלי להשתמש בVarchar במיוחד בגלל הקטע הזה,למרות שלא בעיה לסדר את זה עם צד שרת(PHP,ASP) ואז לעשות את הפעולות על השדה.

וזהו אחלה תגובה דותן :]


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

   20:15   13.01.08   
אל הפורום  
  4. בדיוק... ותוספת קטנה...  
בתגובה להודעה מספר 3
 
   בCookies לשמור:
ID של המשתמש => רגיל
סיסמא => מוצפנת
ובכל פעם לבדוק שהסיסמא המוצפנת מתאימה לID שיש בעוגייה...

בSession לא חייב בדיוק ככה, אפשר רק ID כי את הSESSION אי אפשר לשנות או לזייף מאחר והם נשמרים על השרת.

וDATETIME הוא בפורמט הזה:
yyyy-mm-dd

ובגלל זה כשהכנסת לו תאריך רגיל הוא הפך, כי ככה הוא מכיר חח...

ולדעתי לשמור בVARCHAR זה טוב רק בכמה מקרים... אבל רק DATETIME אם אתה רוצה לבדוק למי יש יום הולדת בקרוב וכו' - עם ADD_DATE וSUB_DATE וDIFFDATE זה ממש פשוט.. בVARCHAR פשוט מסובך לעשות את זה...
עם DATETIME אתה יכול מתי שבא לך להוציא את זה כdd-mm-yyyy או dd.m.yy או בכל דרך אחרת...

:}


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

   20:42   13.01.08   
אל הפורום  
  5. אני יודע שהוא בפורמט הזה בגלל זה כתבתי =] אבל זה שטויות  
בתגובה להודעה מספר 4
 
   לעבוד עם זה=]

שייצא לך לעבוד על מערכות שדורשות תזמונים לפי תאריכים מסויימים אתה תראה איזה סבל זה


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

   21:28   13.01.08   
אל הפורום  
  6. אני יודע חח  
בתגובה להודעה מספר 5
 
   בגלל זה כל מה שקשור לזמנים שממש עכשיו זה רק TIMESTAMP... רק חבל שזה לא תומך לפני 01.01.1970 חח


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   11:17   14.01.08   
אל הפורום  
  7. בID להשתמש ב''מפתח זר'' ?  
בתגובה להודעה מספר 2
 
   או משהו אחר


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

   15:24   14.01.08   
אל הפורום  
  9. גרמת לי ללכת לקרוא מאמר שלם על איזה משו עכשיו לא משנה  
בתגובה להודעה מספר 7
 
   ערכתי לאחרונה בתאריך 14.01.08 בשעה 15:32 בברכה, akoka
 
אמממ תראה מה הרעיון

יש לך את הטבלה של המשתמשים
user_id
bla
blabla
balb
labla
lba
lbalba
lbalb
a

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

זה כול הרעיון.

זה יעזור לך לגבי הרבה דברים.

במקרה הזה המפתח הזר יהיה בטבלת החברים של אותו משתמש.


Users
_________
u_id(int)(Unique Key)
Username(Varchar)
Password(Varchar)
_________________________
Members
_________________________
friend_id(int)
user_id(int)(FK)
___________________________

זה הכול אל תוסיף גם בטבלת חברים את שם החבר וכול הפרטים שקשורים אליו כי יותר עדיף לך להשתמש בJoin ולשלוף את הפרטים שלו מהטבלה של המשתמשים וזהו זה כתוב בחוקי נרמול טבלאות

יאללה מולער תפגיז אותנו=]


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

   17:21   14.01.08   
אל הפורום  
  10. מכתב  
בתגובה להודעה מספר 7
 
   "מפתח זר" = שימוש בID בטבלה כלשהי, מתוך טבלה אחרת...

בUsers אין מפתח זר, אבל בFriends יש שניים כאלה...

user_id - מציין את הID של המשתמש, שהרי נשמר בUsers
friend_id - מציין את הID של החבר, גם הוא נשמר בUsers, כי אלה שני משתמשים.

אז כן, user_id ו-friend_id מציינים מפתחות זרים מהטבלה Users.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Sn00py 
חבר מתאריך 1.8.02
2954 הודעות
   11:35   14.01.08   
אל הפורום  
  8. פשש דותן ויוחאי, סחטיין סחטיין ושוב סחטיין... :) תגובות מושקעות.  
בתגובה להודעה מספר 0
 
  

\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser


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

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

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



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