מצד אחד את קובעת מציגה לנו התנהגות מערכת
כאילו היא סגורה וככה נקבע מגבוה, ומצד שני רוצה שנעזור באפיון בהתאם לצרכים שלכם
האפיון שלכם כפי שנראה על פני השטח במבט ראשון ניתן לשיפור משמעותי.
* אתם צריכים לצאת מהקופסה כמו שאומרים
לחשוב מחוץ לקופסה על דרכים לקבלת הצרכים שלכם.
למשל: אמירה כמו: השם של הקובץ כולל תאריך אבל אנחנו צריכים קבצים לפי שעה... השאלה מרמזת על פתרון בתוכה! תאריך לא מתאים אז מה עם שם הכולל שעה?!? אולי אפילו שם שכולל זמן מדויק באלפיות שנייה?
מה ז"א "מגיע"? מהיכן? כיצד? מי המקור? הם אפשר לבצע שינוי?
* יש מיליון שאלות שעולות כאשר יושבים על אפיון!
אמרתי לא אחת ואני חוזר כל הזמן שארכיטקטורה ואפיון לא ניתן לבצע בפורום. אנחנו רק יכולים לזרוק באוויר נקודות למחשבה בלי להכיר את המערכת שלכם, ומה מתאים לכם. את הבחירה החל מהכיוון ועד לפתרון אתם צריכים לבצע
הנה כמה נקודות:
* אמרנו כבר ששם קובץ יכול להכיל זמן אבל מצד שני זמן יצירת קובץ זה משהו שמוטבע במאפייני הקובץ במערכת ההפעלה, ולכן בעצם הנתון הזה קיים לו בכל מקרה, גם אם שם הקובץ לא כולל אותו!
* אסור להיות נעולים על טכנולוגיה מסוימת או על אפליקציה מסוימת להגעה לפתרון. מי בכלל אמר שהפתרון מתחבא ב SQL Server? אני למשל נוטה כרגע לאור המידע החדש לפתרון שבכלל מנוהל על ידי אפליקציה קטנה.
* ניהול קבצים מאוד קל לבצע באמצעות ה API המובנה במערכת ההפעלה. גם ככה היא מנהלת את הקבצים.
* ניתן לפנות להפעלת פעולות SHELL ופקודות דרך שאילתות SQL באמצעות פרוצדורה מובנית שנמצאת בשרת בשם xp_cmdshell
* למה לבצע פעולה כל X זמן?!? למה לא לתפוס את הקובץ ברגע שהוא כנתב? כאמור מערכת ההפעלה עצמה כוללת אפשרות מעקב אחרי אירועים, אפשר לקבוע שברגע שקובץ נכתב ירוץ סקריפט מסוים (קצת יותר מתקדם ומחייב עבודה בקוד בשפות כמו C++ ולא ישירות דרך C#).
* בשרתי SQL יש סוגים שונים של טורים היכולים לשמש לאחסון קבצים. האם מיהו חשב לשמור את הקובץ כבר במקור במסד הנתונים?
* אם הקובץ נכנס למסד הנתונים, אז שוב אפשר לפעול בשיטת איתור הקובץ ברגע שהוא נכתב דרך יכולות השרת (שימוש בטריגר).
אני יכול להמשיך בלי סוף
בשלב זה אם אין ארכיטקט מערכת שיבצע את התכנון הדרך הכי פשוטה (לא בהכרח הכי טובה) היא פשוט לבחור דרך וללכת איתה עד הסוף.
תבחרי על כיוון כללי וכשאשר יהיה בעיות ספציפיות נוכל לעזור לפתור אותן (או להגיד שהכיוון הכללי היה לא טוב וצריך להתחיל מההתחלה
)