טבלה או שאילתה באקסס - חוות דעתכם
-
אולי עוד משהו קטן..
אני חושב שכן כדאי שתוסיף שדה של "כמות" לטבלה, שאם אדם אומר לך מראש כמות של "10 חלב" לא תצטרף להעביר את זה 10 פעמים.סתם להתעניין אתה עושה את זה עם בר קוד? א"כ איך אתה מדפיס ע"י גופן או משהו חיצוני?
משהו כזה? מדבקות לבר קוד.pdfמכוער אבל ישן
פורסם במקור בפורום CODE613 ב24/08/2014 11:23 (+03:00)
-
בטבלה יש לשמור כל פעולה שנעשתה בפנ"ע.
סיכומים ושאר ירקות [u:1x8fdcqg]רק[/u:1x8fdcqg] בשאילתות.גם אני הקטן סבור כן. וכן אני נוהג בדרך כלל.
רק שראיתי באיזה תוכנה הזויה אבל מקובלת במוסדות החינוך שAPT שמה, שהם עשו את הכל בתוך הטבלאות, וחשבתי אולי שהטעינה של הטבלאות מהירה יותר בריבוי נתונים.
תודה בכל אופן.
אם כך אומרים כך נעשה בע"ה.לפי חוק נרמול 1 זה שגוי, אבל לפי הפרקטיקה ויעילות הביצוע זה בהחלט מתבקש הרבה פעמים, לכתוב לתוך מסד שדה מחושב ושאר ירקות ובעיקר סיכום של בנים בשורת האב. למעשה הדוגמה המובהקת של טריגר זה המקרה הזה, ובכלל, אלמלי הצורך הזה לא היו מפתחים את ה"טריגר" כלל, אף שהוא שימושי במקרים נדירים אחרים.
פורסם במקור בפורום CODE613 ב25/08/2014 16:39 (+03:00)
-
@דוד ל.ט.
אבל לפי הפרקטיקה ויעילות הביצוע זה בהחלט מתבקש הרבה פעמים
מסכים לחלוטין, אני מכיר מערכות ERP שמשמשות את החברות הגדולות בעולם ששומרות ב DB נתונים מסוכמים.
הצורך הזה נוצר בעקבות כך שלפעמים מדובר בסכימה של מיליוני שורות על בסיסי נתונים רלציוניים, וזה לא משהו שאתה יכול להרשות לעצמך בהנפקת דו"ח.
מקסימום במקרה הצורך מריצים תהליך שמעדכן את הסיכומים.@דוד ל.ט.
ובכלל, אלמלי הצורך הזה לא היו מפתחים את ה"טריגר" כלל, אף שהוא שימושי במקרים נדירים אחרים.
הרחקת לכת בקביעה הזו, אני לדוגמה משתמש בטריגרים גם על מנת לשמור היסטורית שינויים וגם בטריגרים של instead of ועוד היד נטויה
פורסם במקור בפורום CODE613 ב25/08/2014 17:03 (+03:00)
-
הרחקת לכת בקביעה הזו, אני לדוגמה משתמש בטריגרים גם על מנת לשמור היסטורית שינויים וגם בטריגרים של instead of ועוד היד נטויה
השימוש הראשון נידון פה בארוכה ע"י "ארכיטקט". מכמה וכמה מקורות שיש כלים הרבה יותר טובים ופשוטים למטרה זו מאשר טריגר. ודאי וודאי שלא נוצר לכך.
השימוש בשני הוא חריג ונספח למושג טריגר שמטרתו לדאוג לשלמות הנתונים (=עקב אי נורמליזציה מלאה).
זה מה שהתכוונתי, ייתכן שאני טועה.
פורסם במקור בפורום CODE613 ב25/08/2014 18:27 (+03:00)
-
הואיל והזכירו כאן את שמי, וידוע שאני חסיד גדול של טריגרים, אחזור על משנתי בתמצית בנושא הזה.
ראשית שימוש בקוד, היכן ומתי ואיפה, זה או ענין של נירמול וניהול משאבים, או ענין של טעם וריח.
בנוגע לאיפה לשים קוד, אם בצד התוכנה או בצד המסד נתונים, זה בהחלט עניין של טעם. השאלה הגדולה היא עד כמה לוגיקה של תוכנה שייכת ישירות למסד הנתונים, ועד כמה היא שייכת לתוכנה עצמאית. לפי טעמי, ברגע שהבינה העיסקית (האילוצים וכל אלו) מחייבת התנהגות עקבית של מסד נתונים, קצת יותר רחבה ממפתח זר, למשל, כל מי שתרם תרומה, מייד נשלח לו אימייל תודה על תרומתך (במידה והאימיילים מנוהלים בטבלה נפרדת) אין יותר הגיוני מלעשות טריגר שיוסיף רשומה לטבלת מיילים. הרחב את זה לבינה עיסקית מורכבת, כגון שאלון שלקוח ממלא, ושעל סמך שאלון זה, יש לדרוש עבורו מסמכים להחתמה, ועל סמך כל מסמך יש רשומות של ערכים כספיים לחישוב, והודעות למשלוח במייל או בפקס להמצאת המסמכים/החתמתם. וכבר קיבלת שרשרת של טריגרים שיוצרים בינה עיסקית נפלאה ממדרגה ראשונה.כדי לשכנע אותי אחרת, צריך לנמק, עוד לא קיבלתי נימוקים עניניים בנושא.
פורסם במקור בפורום CODE613 ב25/08/2014 18:41 (+03:00)
-
@דוד ל.ט.
השימוש הראשון נידון פה בארוכה ע"י "ארכיטקט". מכמה וכמה מקורות שיש כלים הרבה יותר טובים ופשוטים למטרה זו מאשר טריגר. ודאי וודאי שלא נוצר לכך.
אני פיתחתי כמה וכמה שיטות שונות ועדיין "ס'איז נישט"
אשמח להפניה ל THREAD הספציפיפורסם במקור בפורום CODE613 ב25/08/2014 19:06 (+03:00)
-
אני פיתחתי כמה וכמה שיטות שונות ועדיין "ס'איז נישט"
אשמח להפניה ל THREAD הספציפיארכיטקט כתב כמה אשכולות והוא השקיע בנושא. ראה http://code.613m.org/viewtopic.php?f=1&t=211
אבל לא כתבתי שם את טענתי האחרונה שהתגבשה אחרי כן.
תוכל לראות הרבה מאמרים באינטרנט על דרכים למעקב שינויים, ושימוש בכלים המובנים של MSSQL לכך.
הנה למשל: http://www.codeproject.com/Articles/537649/SQL-Server-Change-Tracking-CTפורסם במקור בפורום CODE613 ב25/08/2014 19:48 (+03:00)
-
כל מה שעלה שם לא חידש לי מאומה, אני מכיר את האפשרויות ה"רגילות" וכולם מורכבות יתר על המידה (או חסרונות יותר גדולים)
מה שאני מחפש זה "הברקה" . .
מבין האפשרויות הרגילות נראה לי הפתרון שהעליתי לפורום שיתופיה SQL שמבצע עבודה יפה עם טריגר ב SQL
אבל אתה צודק שזה עדיין לא זה . . .פורסם במקור בפורום CODE613 ב25/08/2014 20:26 (+03:00)
-
וכתב הגרג"ר: במציאות הטריגרים אמורים להפעיל בדרך כלל פקודות Insert לטבלת לוג שמתעדת את השינויים בטבלה אליה הטריגר קשור, אם כי יכולים להיות להם שימושים נוספים. ע"ש.
פורסם במקור בפורום CODE613 ב26/08/2014 12:56 (+03:00)
-
וכתב הגרג"ר: במציאות הטריגרים אמורים להפעיל בדרך כלל פקודות Insert לטבלת לוג שמתעדת את השינויים בטבלה אליה הטריגר קשור, אם כי יכולים להיות להם שימושים נוספים. ע"ש.
גם מיקרוסופט כותבים כך.
גם ויקיפדיה מתייחסים לשימוש זה בפרט בהקשר של sql server, אגב הערך חדש לי ושווה בדיקה http://en.wikipedia.org/wiki/Log_triggerאבל אני עומד על דעתי שזה שימוש זניח שלא במקומו.
למטרת לוג היו פשוט מוסיפים לDB את היכולת הזו וזהו. לא שימוש מסובך בטריגר מעצבן.בקשר לתפקידו הטבעי של הטריגר, כולם מקדימים לומר שהוא פשוט ברוב המקרים חסר תפקיד - כלומר לא להשתמש בו. יתר המקרים זה שלמות נתונים שכתובים פעמיים וכדו'.
ראה בויקיפדיה האנגלית את משפט התמצות על טריגר:...The trigger is mostly used for maintaining the integrity of the information on the database. For example, when a new record (representing a new worker) is added to the employees table, new records should also be created in the tables of the taxes, vacations and salaries.
במילים אחרות הטריגר בא לעולם ב"חטא" - בניית מסדי נתונים שאינם עומדים בתכלית הנורמליזציות בגלל הפער בין האידאליה למציאות).
אגב השיטוט, פתרונות מהרשת נוספים באותו עיקרון שלכם - ארכיטקט וsoft - מבוססים על טריגר
http://weblogs.asp.net/jongalloway/adding-simple-trigger-based-auditing-to-your-sql-server-database
http://www.softcodearticle.com/2012/11/imlementing-generic-audit-trail-trigger-in-sql-server/פורסם במקור בפורום CODE613 ב26/08/2014 16:56 (+03:00)