אשמח להתייעץ בנוגע לתכנון טבלאות בSQL
מה מומלץ לבצע בטבלה שבטווח של עשר שנים לא אמורה להכיל יותר מ100,000 שורות
-
מבחינת קריאות
-
מיטוב ביצועים
-
(ופשטות יצירת שאילתות)
כידוע ה'כלל אצבע' במסדי נתונים
הינו להימנע מהזנת נתון כפול ולבצע שימוש ב'מפתח זר'
שאלה:
- במידה ויש לי הרבה נתונים ייחודיים אבל אינם מוכרחים להיות בטבלה הנוכחית
האם יותר נכון להוסיף עמודות לפי הצורך (כולל עמודות עם שדה ntext / nvarchar(4000) )
או בכ"ז לפצל לטבלאות נפרדות
לדוגמא:

יש לי אפשרות לשמור את כל הנתונים הללו בטבלה אחת וזה תקין,
כי זה מידע ייחודי
מצד שני ניתן לפצל את העמודות של הכמות שסופקה והערות לטבלה נפרדת
(עמודה תאריך אספקה משמש גם לביצוע פילטור האם סופק)
- במידה ויש נתון 'כפול' שניתן להשיגו באמצעות מפתח זר הקיים בטבלה נוכחית
אבל זה נתון 'רזה' מסוג nvarchar(30)
האם 'שווה' להוסיף את העמודה בכדי לחסוך את הjoin בשאילתות
עריכה: דוגמא

למעשה המזהה ספק ושם הספק הינו נתון כפול
כי ניתן לשלוף את שם הספק באמצעות JOIN לטבלת ספקים
מצד שני - שם הספק הינו שדה 'רזה'