יום שני, 8 בדצמבר 2008

שמירה של תעודת זהות בבסיס הנתונים

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

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


מכאן מה שבצענו הוא-

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

המערכת עובדת הרבה יותר מהר, כפילויות נמנעות.

המלצה והנחיה:

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

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

תגובה 1:

שמעון אמר/ה...

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