MYSQL

yair24

Member
MYSQL

שלום, אני רוצה לשמור כתובת IP של גולש למשך 24 שעות על מסד נתונים. איך אני עושה שאחרי 24 שעות זה יימחק אוטומטי? תודה מראש למי שיכול לעזור יאיר
 

kensaggy

New member
מממ..

הוסף שדה של תאריך הכנסה.. וצור סקריפט שימחוק את כל הרשומות שנכתבו 24 לפני הזמן הנוכחי (זמן הרצת הסקריפט) עכשיו אם חשוב לך שזה יהיה בדיוק 24 שעות אחרי אתה צריך crob tab או crob job (אותו דבר). ברר עם חברת האחסון שלך בקשר לנושא. אם לא חשוב לך, אתה יכול להכניס את זה לסקריפט שיורץ ע"י משתמשים שיכנסו לדף מסויים.. ז"א להכניס בדף הראשי קוד שמחשב סיכוי, ואם פגעת ב 5% מסויימים אז שיריץ את קוד המחיקה. לדומגא בחר מספר אקראי בין 1-100 , אם הוא בין 1-5 (%5 סיכוי שזה יקרה) אז מחק את הרושומות המתאימות. המטרה בעניין הוא לא להריץ את מחיקת הרשומות כל פעם שמישהו נכנס כי רוב הסיכויים שיהיו בטבלה המון רשומות, וזה יאיטל את קצב הדף. כמובן שיש בזה גם "סיכון" מסויים שזה לא ימחק גם אחרי שלושה ימים, הכל תלוי בכמה חשוב לך וקריטי למחוק את הרשומות... את השיטה הזאת ניתן לראות בכל ה paste bin-ים למיניהם.. עוד אפשרות היא לשמור במקום כלשהו (קובץ, בסיס נתונים) את תאריך המחיקה האחרון. ואז כל שעליך לעשות הוא לשלוף את המידע, להשוות אותו לזמן הנוכחי וככה תדע אם למחוק או לא. כמו שאתה רואה יש יותר מאפשרות אחת לפתרון הבעיה, רק תבחר את מה שהכי מתאים לך :) בהצלחה,חן.
 

N i X

New member
Paste Bin

Paste Bin משמם כמקום שאתה יכול להדביק שם דברים, בד"כ קודים של תוכנות, כדאי אח"כ יהיה לך קל יותר לשאול שאלה בקשר לקוד, בלי הצורך להדביק את כל הקוד, אלה רק לינק אליו, כמו למשל בערוץ IRC.
 

N i X

New member
למה לא שאילתה אחת?

בשביל מה לשלוף ולהשוות אם אפשר
DELETE from mytbl WHERE $cur_time-time > 24*60*60; time שדה שמכיל timestamp $cur_time = time(0);​
 

kensaggy

New member
אפשר אבל מה שאני טוען הוא...

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