לא קראתי את התגובות, מקוה שלא אחזור על הנאמר.
אני הייתי עושה את זה באופן הבא:
טבלה ראשית - מכילה את המידע האישי על העובדים.
טבלה משנית - מכילה את המידע על העובדים בנושא העבודה, כלומר תאריך התחלת העבודה, מקום העבודה וכו'.
הטבלאות וסוגי הטורים (סוגי הטורים כתבתי באופן בסיסי, לא כתבתי את הגודל שלהם וכד'):
טבלה ראשית-
employees:
e_id - שדה מסוג INT ו- Auto_Increment
ת"ז - שדה מסוג INT (או BIGINT וכד', תלוי בגודל של המספר... בדקי בדוקומנטציה)
שם פרטי - מסוג CHAR
שם משפחה - CHAR
תאריך לידה - DATE ; אולי INT שמכיל את ה- Unix time (ראי כאן:
http://en.wikipedia.org/wiki/Unix_time) . תלוי בצורך...
טלפון בבית - CHAR
סלולרי - CHAR
מקום עבודה נוכחי - Boolean (אמת או שקר)
הערות כלליות - CHAR
טבלה משנית -
employees_jobs:
ej_id - שדה מסוג INT ו- Auto_Increment
e_id - שדה מסוג INT, בדומה לגודל של השדה e_id שבטבלה הראשית. זהו השדה המקשר בין הטבלאות.
מקום העבודה - CHAR כנראה...
תחילת העבודה (באיזו שנה התחיל לעבוד) - DATE או YEAR או INT ... שוב, תלוי בצורך.
היקף משרה (מלאה, חלקית וכו'..) - TINYINT - קטן מאוד כיוון שכמות האפשרויות לשדה זה מוגבל.
--- SOF ---
בנוגע לשדה של "עבודות קודמות" - לא צריך אותו.
הסיבה היא שהטבלה המשנית משמשת אותך לרשימה של עבודות קודמות, כאשר כל עבודה מיוצגת בתור רשומה אחת בטבלה. תוכלי להיעזר בפיסקת INNER JOIN על מנת לקשר בין הטבלה הראשית ולמשנית.
בטבלה הראשית יש את השדה "מקום עבודה נוכחי" כדי שיהיה אפשר לבדוק בקלות ובמהירות אם העובד הספציפי מובטל או עובד. יש 2 אפשרויות כאן עד כמה שהבנתי, ולכן זה מסוג BOOLEAN.