21-12-10, 00:59 | # 1 |
חבר מתקדם
|
שחזור מחיקה (SQL/PHP)
אני רוצה שתהיה לי את האפשרות לשחזר כל רשומה שמחקתי ממסד מסויים,
הכוונה היא שלפני המחיקה (delete) תרשם לקובץ log השאילתה הנגדית (insert into). יש דרך מקוצרת להוציא את את השאילתא שנדרשת ליצירת שורה מסויימת? תודה. |
21-12-10, 02:33 | # 2 |
חבר בקהילה
|
תעשה סלקט לשורה שאתה רוצה למחוק, תשמור את המידע שלה נגיד בקובץ שבו יש מערך עם המידע של השורה, או לחילופין: תיצור טבלה חדשה שתקרא X והיא תהיה הסל מחזור שלך ופשוט לשם תעתיק את השורה שאתה רוצה למחוק ואחרי שיש לך את השורה בטבלה החדשה - תמחק את הקודמת.
|
21-12-10, 18:24 | # 3 |
משתמש - היכל התהילה
|
למה שלא תעשה שדה של deleted ותגדיר ש: 0 זה מחוק, ו 1 זה פעיל.
ככה אם אתה מוחק, הוא עדיין שמור לך אבל עם deleted=0 וכמובן בשאילתות באתר אתה שולף את ה deleted='1' ויכול תמיד לשחזר.. או שתעשה ב JS ברגע שלוחצים מחיקה הוא ישאל "האם אתה בטוח". סתם מיותר לדעתי לעשות לוג של INSERT. תעבוד עם ה deleted כמו שהסברתי, מניסיון, זה פשוט, ואחלה לשחזר אחרי זה.
__________________
פרוייקטים: חדשות, קייטרינג, מילים לשירים, זר מתוק בניית אתרים - Wise Group Media LTD
|
21-12-10, 18:28 | # 4 | |
חבר מתקדם
|
ציטוט:
אבל אצלי האינדקסים הם לפי שמות ולא לפי מספרים, ככה שהשליפה כבר איטית, אני לא רוצה שהיא תהיה יותר איטית כי היא תעבור על כל המחוקים בנוסף. והקטע עם ה-JS הוא בגדר חובה, בלי קשר לשחזור. |
|
21-12-10, 23:46 | # 5 |
חבר מתקדם
|
אז פשוט תעביר את מה שאתה רוצה למחוק לטבלה אחרת כל פעם שאתה "מוחק"
למרות שהשיטה של חנן נראה לי עדיפה, כמה איטי זה כבר גורם לזה להיות? |
22-12-10, 20:38 | # 6 |
משתמש - היכל התהילה
|
השיטה של חנן אם אינדקס מתאים לא תיהיה איטית בכלל. מעבר לזה, אני משער שהטבלה די קטנה ככה שזה לא משנה בכל אופן.
אם אתה רוצה לעבוד בצורה הכי נוחה ואתה מריץ MySQL 5 ומעלה אתה יכול להשתמש בstored procedures בשביל להעביר כל מידע שנמחק מהטבלה לטבלה אחרת אוטומטית, בלי התעסקות עם זה בקוד. |
22-12-10, 23:36 | # 7 |
חבר מתקדם
|
הצלחתי לסדר את זה,
תודה. |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|