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