שאלת אירגון נתונים

mother1

New member
שאלת אירגון נתונים

בוקר טוב , שאלתי הבוקר לגבי ארגון בסיס הנתונים שלי: יש לי מאגר לקוחות ולכל לקוח יש חשבון בנק . לכל לקוח יכולים להיות עד 3 חשבונות בבנקים שונים . (מזרחי פועלים לאומי). הפתרון שלי: טבלת לקוחות עם מזהה יחודי ת"ז.(ת"ז,פרטים אישיים ,מספר חשבון בכל בנק) טבלת בנק מזרחי ,טבלת בנק פועלים טבלת בנק לאומי .הקישור בין כל טבלת בנק לבין לקוח מתבצעת או ע"י ת"ז או ע"י מספר החשבון( עוד לא החלטתי). פעולות שארצה לעשות על הנתונים: עריכה , יצירת חדש , מחיקה,מיון,דוחות . אנא אנשים טובים האירו עיני. אני חדשה בסביבה ואשמח לקבל כל מידע רלונטי . תודה!
 
אם הבנתי נכון את השאלה אז....

שתי אפשרויות עומדות בפנייך 1. שמוש במפתח כפול, פעם אחת על מזהה החשבון בבנק הרלונטי ופעם שניה מזהה הלקוח 2. שמוש במפתח אחד, יוניק למזהה החשבון בבנק הרלונטי ומזהה הלקוח יהיה רק שדה חובה, שבמילא יעודכן בקוד, ויהיה מוגדר כאינדקס המאפשר כפילות. יש לשתי השיטות יתרונות וחסרונות, את צריכה להחליט על מה את הולכת. --------------------------------------------------------------------- למרות שאני הייתי בונה את זה אחרת, וצריך להבין כאן שאני בעד צמצום בנתונים, הכללים שמנחים אותי הם בראש ובראשונה נוחות משתמש הקצה ואחר כך אירגון מסודר ונכון של הנתונים. ככל שיהיו פחות כפילויות הגישה לנתונים תהיה מהירה יותר. ולכן, טבלת בנקים עם כל סוגי הבנקים האפשריים ללא הגבלה (ניתן לבנות טופס טבלאות עזר המאפשרת למשתמש לבחור את הבנקים שהוא רוצה לעבוד איתם) טבלת לקוחות, כמובן, ואמנם ניתן להשתמש בת"ז כמזהה יוניק, למרות שאני מעדיף להשתמש בשדה מפתח נוסף. והטבלה השלישית לצורך העניין טבלת חשבונות - טבלה זאת תקבל נתוני זהוי של בעל החשבון, מטבלת הלקוחות שלנו (מס´ מזהה בלבד) תקבל את הבנק מטבלת בנקים (עוד פעם, מספר מזהה בלבד) ואז מספר החשבון. אין מניעה, שיהיו כמה חשבונות לכל לקוח, ומצד שני אנו מגמישים את המערכת כך שאם מחר יקום כאן "בנק בסיסי נתונים בע"מ" משתמש הקצה יוכל להוסיף אותו לאפליקציה, ואנחנו, כמתכנתים, לא צריכים להתערב ולעזור לו. מקווה שעזרתי במשהו
 

mother1

New member
עניתי לך גם באישי

אך אולי מישהו יוכל כאן להאיר את עיננו: לגבי השיטה שהצעת: טבלת הבנקים תכיל 2 שדות: מספור אוטומטי ושם הבנק. אבל אצל הלקוח ייתכנו כמה שדות כאלו! (בנק א בנק ב בנק ג) כך שב נקודת זמן אחת אני רוצה לראות את כל חשבונותיו . איך ייעשה הקישור הזה אם כך ?
 
אני עונה לך כאן על מנת להאיר לכולם

בואי נחלק, בין שני סוגי נתונים, נתונים כלליים כמו שם הבנק, מס´ חשבון ותאריך פתיחה לבין נתונים קונקרטיים יותר כמו פעולה ותאריך פעולה בטבלת חשבונות באמת יכולים להיות יותר משני שדות ולהוסיף שם גם את תאריך הפתיחה של החשבון ואם את רוצה אפילו איך קוראים למנהל הסניף וכתובת הסניף. הרי יתכן מצב שלאדם יהיו שני חשבונות באותו בנק אבל לא באותו סניף. לגבי פעולות שוטפות בחשבון, יש טבלת פעולות שהשדות שם הם - עוד פעם מזהה בעל החשבון, מזהה החשבון, תאריך פעולה, סוג הפעולה וערך הפעולה אני לא מכניס שדה סיכום מהסיבה שכל מה שניתן לחשב מחשבים בקוד או דרך שאילתת SQL. לגבי הצגת נתוני כל החשבונות, במקור הטופס כל מה שצריך לשות זה להגדיר קריטריונים, לפי בנק, לפי חשבון או לפי לקוח ואפילו בחתך תאריכים.... זה היופי בהיררכיה נכונה ב - DB
 

mother1

New member
בניית הטבלאות

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

mother1

New member
איך להמשיך?

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

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

mother1

New member
בוקר טוב

טבלת לקוחות : ת"ז הוא אינדקס (ללא דופליקטים) טבלת חשבונות :מס´ חשבון הוא אינדקס (ללא דופליקטים) איך מתבצע הקישור בין ת"ז למס´ חשבון ?
 
למעלה