@dovid כתב באיחוד טבלאות MSSQL:
אם תוכל לתת טעימה מהמצב, אמיתית או מדומה, זה יעזור גם להבין וגם לענות.
אנסה להסביר:
טבלה-1: סוכנים. טבלה-2: חנויות.
להלן חלק מהטבלאות ב DB:
- סוכנים(מזהה, שם)
- חנויות(מזהה, שם, ועוד)
- מוצרים1(מזהה, שם, מזהה חנות, ועוד)
- מוצרים2(מזהה, שם, מזהה סוכן, ועוד)
יש עוד 5 טבלאות שמקושרות לסוכנים. ועוד 2 שמקושרות לחנויות.
ב2 טבלאות אין PK, לא זוכר למה, אולי בגלל שרציתי שיהיה אופציה של NULL. (זה כנראה טעות מה שעשיתי).
מה שקרה עכשיו, שחלק מהחנויות נהיו גם סוכנים, ואני עשיתי חשבון שמיותר כל החלוקה של הטבלאות, וגם אם עכשיו זה בלגן לאחד אותם, אבל בהמשך הדרך זה רק יעמיק את העקימות של ה-DB אם אני אשאיר את זה ככה, וזה גם לא תקני שיהיו נתונים כפולים ב2 טבלאות.
אז אני צריך לאחד את סוכנים עם חנויות, ואת מוצרים1 עם מוצרים2. זה האחרון זה לא בעיה, כי אין הפניות למזהה שלו.
אני חשבתי על דרך קצת מסובכת: להוסיף ב3 הטבלאות שמפנות לסוכנים עוד עמודה "מזהה חנות", לעבור על שורה שורה בטבלת סוכנים (לא מדובר בכמה עשרות), ולהכניס אותם לטבלת חנויות עם מזהה חדש, ולעדכן ב 3 הטבלאות בעמודה "מזהה חנות" את המזהה החדש שהתקבל בטבלת חנויות, וכך חוזר חלילה.
וכשאני מסיים, למחוק את העמודה "מזהה סוכן" ושים PK בעמודה "מזהה חנות".
זו הדרך היחידה?
וגם א"כ אני לא יודע איך לממש את זה.