@דוד ל.ט.
@ClickOne
אם גידול הרשימות משמעותי הפיתרון של ארכיטקט לא ישים. (גם אם המספר ההתחלתי הוא מליון והוא כותב מערכת גדולה הוא כבר נכנס לסיכון [במיוחד אם הטבלה הראשית שעליה הוא מדבר היא לא של אנשי קשר (שאין הרבה) אלא של מיילים לדוגמא - הוא לא יכול להגביל את עצמו למליון])
תראה, גידול רשומות הוא סיכון בכל טבלה עם מאפיין int ייחודי, רק שכאן הוא מגיע יותר מהר. הסיכון נמצא במידה שווה גם בדוגמתך, כל עוד הקונוורט שלך הוא לint. זה נכון שאפשר לעשות אותו לסטרינג כמו שכתבת:
הסיכון לא נמצא גם אצלי, כי אצלי תמיד המספר יתחיל ב1 - אפילו כשזה יגיע למיליארד. (אתה מדבר כנראה על הגבול שINT יכול להגיע, ואני מדבר על זה שאפילו BIG יכול להוות בעייה אם נעשה התחלה ממליון)
@דוד ל.ט.
@ClickOne
לגבי הביזבוז עם סטרינג, אני רק רוצה להזכיר שסטרינג בהחלט יכול לשמש כמפתח ראשי על אף הבזבזנות שלו (ועל אף הרצון של כולנו להשתמש דווקא במספר אוטו') - לדוגמא: GUID, שממומש במקרים רבים כסטרינג + מפתח ראשי ולא כסוג uniqueidentifier.
אני התכוונתי על בזבוז מעבד וזיכרון ברגע החישוב, לא על זיכרון דיסק באחסון (זה בכלל עמודה מחושבת!!).
לגבי מקום בדיסק או ביצועי השוואה (כאינדקס, וכמפתח ראשי) אין הבדל כלל בין סטרינג למספר, בתנאי שהסטרינג אורך קבוע (לא varchar), ושההשוואה היא מול מספר של קנה מידה שווה (עם זה char(10) לדוגמה, אז כל char זה byte שלם, מה שאומר מספר ענק.
אגב אפשר להשתמש למקרה שלנו גם בטיפוס binary, לכאורה זה חוסך.
גם אני התכוונתי לבזבוז ביצועים ולא מקום (בגלל שזה עמודה מחושבת), למרות שיכול להיות שהפיתרון אמיתי כאן זה עוד עמודה(לא מחושבת) שתתחיל ב1. צריך פעם אחת לבדוק במקרה כזה האם ההשפעה שלחישוב מול מקום מה עדיף. - וכמובן, תמיד אפשר לתכנן את הDB שונה.
@שמואל
@ClickOne
יכול להיות שהוא פשוט רוצה קידומת כדי שיוכל לעשות טבלת משנה ולהכניס בתוך עמודה אחת את מ2 הטבלאות.
אני נהנה לשמוע שלומדים את כוונותי
אם כבר, לדוגמה בעסק שמנפיק חשבוניות וכמובן הם חייבים להיות לפי סדר רץ
כאשר רוצים להתחיל מיספור מחדש או אפילו בו זמנית להשתמש בשני מיספורים שונים אז עושים סדרות בצורה כזו (כך עד כמה שידוע לי)
סדרה אחת: 01/1, 01/2, 01/3 וכו',
סדרה 2: 02/1, 02/2, 02/3 וכו',
דרך אגב: נראה לי שהסלש הוא רק עניין תצוגתי להפריד כל פעם את שני הספרות הראשונות, אני צודק?
לענ"ד הסלש באמת רק תצוגתי, ולפי הוראות מס הכנסה אין חיוב לעשות סדרות - זה בא לידי ביטוי בד"כ רק בחברות ענק כמו חברת החשמל שלא רוצים להגיע למספרי חשבוניות דמיוניים. אני מניח שמס' הסידרה נמצא בשדה אחר (בחברת החשמל לדוגמא מס' הסידרה זה השנה - עכשיו זה 2014)
פורסם במקור בפורום CODE613 ב22/05/2014 12:36 (+03:00)