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

אין לכך קיצור מקשים, משום שקשר אינו נבחר כמו טבלה או פתק: המקשים Delete ו-Backspace, שמסירים את מה שנבחר, לעולם אינם מסירים קשר לבדו – ראו מחיקת טבלאות ופתקים.
קשרים מוסרים גם יחד עם מה שהם מחברים: מחיקת טבלה מסירה כל קשר שנוגע בה, ומחיקת עמודה מסירה כל קשר שמשתמש בה.
שינוי סוג
ניתן לשנות את הסוג באמצעות הפריט Relationship Type בתפריט ההקשר של הקשר.
מוצעים ארבעה סוגים, והסוג הנוכחי מסומן בסימן וי:
- Zero One
- Zero N
- One Only
- One N

אלה אותם ארבעה סוגים שאיתם מתחילים ליצור קשר, ולכל אחד מהם קיצור מקשים משלו – ראו תחילת העריכה.
ON DELETE ו-ON UPDATE
ההגדרה נעשית באמצעות הפריטים On Delete ו-On Update בתפריט ההקשר של הקשר, בין Relationship Type ל-Map Columns.
כל אחד מהם מציע את אותם שישה פריטים, והפריט הנוכחי מסומן בסימן וי:
- Not set
- NO ACTION
- CASCADE
- SET NULL
- SET DEFAULT
- RESTRICT
הפריט Not set אינו כותב שום פסוקית, ולכן חלה ברירת המחדל של מסד הנתונים עצמו. קשר חדש, בין שמשורטט ובין שנוצר במיפוי עמודות, מתחיל כששתי הפעולות מוגדרות כ-Not set, ובחירה ב-Not set בשלב מאוחר יותר מבטלת את הפעולה.
שתי הפעולות אינן תלויות זו בזו: שינוי של אחת מהן משאיר את השנייה כפי שהיא.
קו הקשר מציג את מה שהוגדר – ראו קריאת קו קשר.
קשר שמועתק ומודבק, או משוכפל, יחד עם הטבלאות שלו שומר על שתי הפעולות, וייבוא של סכמת SQL, DBML או AML מביא את הפעולות שהקובץ מצהיר עליהן – ראו ייבוא וייצוא של קבצים.

ניתן לבחור כל פעולה, יהיה מסד הנתונים אשר יהיה.
לפעולה שמסד הנתונים שנבחר משמיט מסכמת ה-SQL שלו נלווית הערה עמומה לצידה, כגון not in MySQL. ל-Not set לעולם אין הערה כזו, והחלפת מסד הנתונים מעדכנת את ההערות.
פעולה שיש לצידה הערה עדיין נשמרת בקשר: קו הקשר מציג אותה, ו-JSON, DBML ו-AML שומרים אותה, אבל סכמת ה-SQL של אותו מסד נתונים משמיטה את הפסוקית, ולכן חלה ברירת המחדל של מסד הנתונים.
סכמת SQL כותבת את הפעולות האלה ומשמיטה את השאר:
| מסד נתונים | ON DELETE | ON UPDATE |
|---|---|---|
| Databricks | NO ACTION | NO ACTION |
| MSSQL | NO ACTION, CASCADE, SET NULL, SET DEFAULT | NO ACTION, CASCADE, SET NULL, SET DEFAULT |
| MariaDB | NO ACTION, CASCADE, SET NULL, RESTRICT | NO ACTION, CASCADE, SET NULL, RESTRICT |
| MySQL | NO ACTION, CASCADE, SET NULL, RESTRICT | NO ACTION, CASCADE, SET NULL, RESTRICT |
| Oracle | CASCADE, SET NULL | אין |
| PostgreSQL | כל החמש | כל החמש |
| Snowflake | NO ACTION | NO ACTION |
| SQLite | כל החמש | כל החמש |
סכמת ה-SQL של Snowflake כותבת גם הערה שמציינת כל פעולה שהיא משמיטה – ראו פעולות הפניה.
הפעולות שיעדי ה-ORM של מחולל הקוד כותבים תלויות ביעד וגם במסד הנתונים שנבחר – ראו מחולל קוד.
מיפוי עמודות
מיפוי עמודות מצמיד את המפתח של טבלת האב לעמודות של טבלת הבן, שורה אחת לכל עמודת מפתח.
כל שורה משתמשת בעמודה שכבר קיימת בטבלת הבן או מוסיפה עמודת מפתח זר חדשה, כך שקשר יכול להסתיים בעמודות שכבר קיימות.

יש שתי דרכים לפתוח אותו:
- במהלך שרטוט קשר, מהאפשרות
Map to existing columnsשלצד טבלת הבן – ראו יצירת קשר. אז הלחצןMapמוסיף קשר מהסוג שמשורטט. - מהפריט
Map Columnsבתפריט ההקשר של הקשר, כדי לשנות את העמודות של קשר קיים. אז הלחצןSaveכותב את השינוי. עורך לקריאה בלבד משמיט את הפריט הזה.
כותרת המשנה של תיבת הדו-שיח מציינת את שתי הטבלאות ואת סוג הקשר, כגון users → posts · One N. הסוג מוצג כאן, אך אינו משתנה כאן – לשם כך יש להשתמש בשינוי סוג.
הבורר References קובע את המפתח שהקשר מפנה אליו: Primary Key, עם העמודות שלו לפי הסדר בטבלה, ואחריו Unique: <column> לכל עמודה שמסומנת Unique. הבורר מוצג רק כשיש יותר מאפשרות אחת.
אינדקס ייחודי אינו נחשב כאן למפתח, ועמודה Unique שהיא המפתח הראשי כולו אינה מופיעה פעמיים.
בחירה במפתח אחר בונה מחדש את השורות. שורה שומרת על הבחירה שלה כל עוד העמודה שנבחרה עדיין נמצאת בטבלת הבן.
תחת הכותרות Referenced column ו-Foreign key column, כל שורה מציגה עמודה של המפתח עם סוג הנתונים שלה, ורשימה של עמודות טבלת הבן שניתן להצמיד אליה:
- האפשרות
Pick a columnמשאירה את השורה ריקה. - האפשרות
New column: <name>מוסיפה עמודת מפתח זר חדשה. השם המוצג הוא השם שהעמודה תקבל, כמתואר בשמות עמודות של מפתחות זרים, והמספור שלו נקבע ביחס לעמודות של טבלת הבן ולשורות האחרות שמוסיפות עמודה חדשה. האפשרות אינה מוצעת כשהשם יהיה ריק, כמו במפתח ללא שם. - כל עמודה של טבלת הבן, בצורה
<name> (<data type>). עמודה ששורה אחרת בחרה מוצגת כ-<name> (<data type>) · in useולא ניתן לבחור בה, כך ששתי שורות לעולם אינן חולקות עמודה אחת. עמודה שקשר אחר כבר משתמש בה עדיין ניתנת לבחירה, כך שעמודה משותפת כגוןtenant_idיכולה לשמש כמה קשרים.
עם הלחצן Map, שורה מתחילה כשהיא כבר ממולאת רק כאשר בטבלת הבן יש בדיוק עמודה אחת, ללא הבחנה ברישיות, ששמה הוא השם שעמודת מפתח זר חדשה עבור השורה הייתה מקבלת לפני כל מספור _2, כגון users_id עבור id ב-users ו-member_id עבור member_id. כל עוד ההגדרה Bracket היא None, ברירת המחדל, נחשב גם השם שנבנה מחלק הטבלה של שם טבלה עם שם סכמה, כך ש-id ב-public.users מוצמד ל-public.users_id או ל-users_id. במפתח Unique נחשב גם השם של עמודת המפתח עצמה, כך ש-vin מוצמד ל-vin. כל שאר השורות מתחילות ב-Pick a column.
עם הלחצן Save, כל שורה מתחילה בעמודה שהקשר משתמש בה כעת. בשני המקרים, בחירה במפתח אחר ב-References ממלאת את השורות הריקות של אותו מפתח לפי אותם שמות.
כשסוג הנתונים של עמודה שנבחרה שונה מהסוג שעמודת האב נותנת למפתח זר, הערה מתחת לשורה מציינת זאת.
כשסנכרון סוג הנתונים בקשרים מופעל ולעמודת האב יש סוג נתונים, ההערה היא <column> becomes <type>, עם הסוג שהמיפוי יכתוב. אחרת ההערה היא Types differ: <parent type> and <child type>, והעמודה שומרת על הסוג שלה.
הלחצן Map או Save נשאר מושבת כל עוד יש מכשול, ושורת טקסט מתחת לשורות מציינת מהו:
Pick a foreign key column for every referenced column: שורה עדיין ריקה.At least one column must reference a different column: קשר עצמי שבו כל שורה בוחרת את עמודת האב שלה עצמה.These columns are already linked by another relationship: קשר אחר בין אותן שתי טבלאות מקשר בדיוק את העמודות האלה.<parent> has no key to reference: עם הלחצןMap, לטבלת האב אין לא מפתח ראשי ולא עמודהUnique.
הלחצן Save גם נשאר מושבת עד שהמיפוי שונה מהמיפוי הנוכחי של הקשר.
עם הלחצן Save, שורה מוצגת כ-(removed) כשהעמודה שלה כבר אינה בטבלה שלה. יש לבחור עמודה אחרת של טבלת הבן, או, עבור עמודת אב שנעלמה, לבחור מפתח ב-References. עם הלחצן Map, שורה שהעמודה שנבחרה בה מוסרת חוזרת ל-Pick a column.
קשר שעמודות האב שלו אינן בדיוק אחד מהמפתחות של טבלת האב נפתח כשבבורר References נבחרה אפשרות נוספת שבסופו, Current columns (not a key), ששומרת על העמודות האלה כפי שהן. כשלטבלת האב אין מפתח כלל, זו האפשרות היחידה, והבורר References אינו מוצג.
במקרה זה, שורת הטקסט The referenced columns are not a key of <parent>, או <parent> has no key to reference כשלטבלת האב אין מפתח כלל, היא הודעה ולא שגיאה: הלחצן Save עדיין פועל, כך שניתן לשנות את עמודות טבלת הבן ולשמור על ההפניה.
קשר ששתי רשימות העמודות שלו אינן ניתנות להצמדה זו לזו, לדוגמה משום שהן באורך שונה, מציג שורות (invalid) ומשאיר את Save מושבת עד שבוחרים מפתח ב-References, או מוסיפים לטבלת האב מפתח ראשי או עמודה Unique אם אין לה כזה.
כל עוד תיבת הדו-שיח פתוחה, היא עוקבת אחר התרשים, כולל עריכות של שותף לעריכה או של סוכן קוד, ושומרת על מה שנבחר.
אם בינתיים משתנות העמודות של הקשר או המפתח שנבחר כשתיבת הדו-שיח נפתחה, היא מוסיפה את שורת הטקסט This relationship changed while the dialog was open.
מה הלחצנים Map ו-Save כותבים:
- הלחצן
Mapמוסיף את הקשר כש-On Deleteו-On Updateמוגדרים כ-Not set. הלחצןSaveמשנה רק את העמודות של הקשר, כך שצד האב שלו מפנה למפתח שנבחר ב-References, ושומר על הסוג שלו ועל ה-ON DELETE וה-ON UPDATE שלו. - שורת
New columnמוסיפה עמודה בסוף טבלת הבן, כפי ששרטוט עושה:NOT NULL, בשם שנגזר מהמפתח שלה, עם סוג הנתונים, ערך ברירת המחדל וההערה של המפתח – ראו קשרים מזהים. - השם של עמודה שנבחרה לעולם אינו משתנה, וה-
Not Null, המפתח הראשי, ה-Unique, ברירת המחדל וההערה שלה נשארים כפי שהם. סוג הנתונים שלה משתנה רק כל עוד ההגדרהRelationship DataType Syncמופעלת ולעמודת האב יש סוג נתונים: העמודה מקבלת את הסוג שעמודת האב נותנת למפתח זר, שהוא סוג המספר השלם במפתח serial, כמו בעמודה חדשה, והשינוי ממשיך לאורך הקשרים כפי שהסנכרון עושה. - עמודה שהמיפוי מפסיק להשתמש בה נשארת בטבלת הבן, ואינה מסומנת עוד כמפתח זר, אלא אם קשר אחר עדיין מסתיים בה.
- כל מה שלחיצה אחת על
Mapאו עלSaveכותבת, כולל עמודות חדשות ושינויי סוג, הוא צעד ביטול אחד.
האם הקשר מזהה, וכיצד מוצג קצה האב שלו, נקבעים לפי עמודות טבלת הבן הממופות, כמו בכל קשר. מיפוי לעמודות המפתח הראשי של טבלת הבן הופך אותו מיד לקשר מזהה, ומיפוי לעמודה שמתירה NULL מציב עיגול בקצה האב – ראו קריאת קו קשר.
המפתח הזר בסכמת SQL מפנה למפתח שנבחר, כגון REFERENCES vehicle (vin) עבור מפתח Unique.
אם התרשים כבר מכיל את המיפוי בזמן הלחיצה על Map או על Save, משום ששותף לעריכה או סוכן קוד הקדים, שום דבר אינו נכתב.
אם הוא השתנה כך שהמיפוי כבר אינו מתאים, שום דבר אינו נכתב ומופיעה הודעה קופצת Couldn't map columns: the diagram changed.
הלחצן Cancel, הלחצן x, המקש Escape או לחיצה על האזור המעומעם שמחוץ לתיבת הדו-שיח סוגרים אותה בלי לכתוב דבר.
האזור המעומעם מכסה את העורך כולו, כולל סרגל הכלים, והסייר, אם הוא פתוח, נשאר פתוח מתחתיו.
גם פתיחת החיפוש המהיר סוגרת את תיבת הדו-שיח, וכך גם יציאה מכרטיסיית ERD או מעבר של העורך למצב קריאה בלבד.
גם Ctrl + F (Windows/Linux) או ⌘ + F (Mac) סוגר אותה, ומציב את סמן הטקסט בשדה האיתור של החיפוש בסייר, תוך פתיחת הסייר אם הוא סגור. בעורך צר מכדי להציג את הסייר, הקיצור עדיין סוגר את תיבת הדו-שיח, אך מציג הודעה קופצת במקום להזיז את סמן הטקסט – ראו פתיחה וסגירה.
אם אחת הטבלאות שלה או הקשר מוסרים בזמן שהיא פתוחה, היא נסגרת עם הודעה קופצת כגון Map Columns closed: the relationship was removed.
כל עוד היא פתוחה, קיצורי המקשים של בד הציור, ביטול פעולה וביצוע חוזר, וכן העתקה והדבקה אינם עושים דבר.
לסוכן קוד אין כלי של מיפוי עמודות. הוא ממפה קשר מחדש על ידי הסרתו באמצעות erd_remove_relationship, ששומר על עמודות המפתח הזר שלו, ושרטוטו מחדש על עמודות קיימות באמצעות erd_link_columns, שניהם ב-erd_batch אחד – ראו כלים.
קשרי N:M
מכיוון שהעורך מבוסס על המודל הפיזי, קשר N:M מבוטא באמצעות טבלת קישור, כפי שמוצג להלן.

כשבטבלת הקישור כבר יש את עמודות המפתח שלה, כגון product_id ו-tag_id ב-product_tags, יש לשרטט כל קשר באמצעות Map to existing columns ולבחור את העמודות האלה במקום להוסיף חדשות – ראו מיפוי עמודות. אם הן המפתח הראשי של טבלת הקישור, כל קשר הוא קשר מזהה מיד.
ייבוא של GraphQL, DBML או AML בונה את טבלת הקישור באופן אוטומטי.
הצהרה של רבים-לרבים מגיעה כטבלה בשם <left>_<right>, עם ההערה Junction table inferred from <left> <-> <right>, שמחוברת לשני הצדדים בקשרים מזהים.
ראו ייבוא וייצוא של קבצים.
קשרים מזהים
שרטוט קשר בלחיצה על טבלת הבן, או באמצעות Create new columns, מעתיק כל מפתח ראשי של טבלת האב לטבלת הבן כעמודת מפתח זר NOT NULL, ולכן קשר חדש מתחיל כקשר לא מזהה.
העותק מקבל את סוג הנתונים, ערך ברירת המחדל וההערה של המפתח, אך לא את Unique או Auto Increment, ושמו נקבע כמתואר בשמות עמודות של מפתחות זרים.
מפתח serial הוא החריג לגבי סוג הנתונים: העותק שלו מקבל את סוג המספר השלם שה-serial מאחסן. בכל מסד נתונים, smallserial ו-serial2 נותנים smallint, serial4 נותן integer, ו-bigserial ו-serial8 נותנים bigint. הסוג serial לבדו נותן integer ב-PostgreSQL ו-bigint unsigned ב-MySQL וב-MariaDB, ונשאר serial בכל מסד נתונים אחר.
רק שם הסוג השלם נחשב, ללא הבחנה ברישיות, ולכן serial(4) מועתק כפי שנכתב. סוג שנכתב באותיות רישיות נותן אותיות רישיות: SERIAL נותן INTEGER ב-PostgreSQL. עמודת מפתח זר שכבר יש לה הסוג serial בתרשים שמור שומרת על הסוג הזה.
כדי להפוך את הקשר למזהה, יש להגדיר את עמודות המפתח הזר האלה בטבלת הבן כמפתחות ראשיים: לבחור את כולן ולהקיש פעם אחת על Alt + K (Windows/Linux) או ⌥ + K (Mac), או לבחור בפריט Primary Key בתפריט ההקשר של הטבלה, שנקרא Primary Key on selected columns כשנבחרות שתיים או יותר – ראו מפתח ראשי של עמודה.

העורך מעדכן זאת בעצמו.
קשר הוא מזהה כל עוד כל עמודה בצד הבן שלו היא מפתח ראשי, והוא הופך ללא מזהה ברגע שאחת מהן אינה כזו.
שמות עמודות של מפתחות זרים
שרטוט קשר קובע את השם של כל עמודת מפתח זר שהוא מוסיף לפי מפתח האב שהעמודה מעתיקה:
- שם מפתח בן מילה אחת, כגון
id,IDאוuuid, מקבל בתחילתו את שם טבלת האב וקו תחתון:idב-productsהופך ל-products_id. - שם מפתח בן כמה מילים, כגון
member_id,userIdאוUserID, נשמר כפי שהוא. - גם שם מפתח בן מילה אחת שהוא שם הטבלה עצמה, ללא הבחנה ברישיות, נשמר:
currencyב-currencyנשארcurrency. מפתח שרק מכיל את שם הטבלה עדיין מקבל את הקידומת:usernameב-userהופך ל-user_username.
שם הוא מילה אחת כשהוא מכיל רק אותיות וספרות, בלי מעבר רישיות.
כל תו אחר מפצל אותו, ולכן _id, order no ו-order-no הם כמה מילים.
כך גם מעבר רישיות, שנקרא כמו ב-camelCase: אות קטנה ואחריה אות רישית (userId), שתי אותיות רישיות ואחריהן אות קטנה (IDCard, IDs), או אות של כתב ללא רישיות, כגון האנגול, קאנה או כתב האן, לצד אות עם רישיות (회원ID).
ספרות אינן מפצלות מילה, ולכן id2 ו-SHA256 הם מילה אחת. גם צירוף שנכתב ברישיות אחידה הוא מילה אחת: memberid ב-members הופך ל-members_memberid.
שם הטבלה משמש כפי שהוא כתוב, למעט רווחים שמסביבו: הרישיות, הרווחים הפנימיים והנקודות שלו נשמרים, הוא אינו מומר ליחיד, וההגדרות Table Name Case ו-Column Name Case של מחולל הקוד אינן משפיעות. Users עם המפתח ID נותן Users_ID.
כל עמודה של מפתח מורכב מקבלת שם בנפרד: orders עם המפתח (tenant_id, id) מוסיף tenant_id ו-orders_id.
שם שכבר קיים בטבלת הבן, ללא הבחנה ברישיות, ממוספר ב-_2, _3 וכן הלאה, ומקבל את המספר הפנוי הראשון.
קשר שני מ-users, עם המפתח id, אל אותה טבלה מוסיף users_id_2, וקשר עצמי ב-members, עם המפתח member_id, מוסיף member_id_2.
העמודות של מפתח מורכב אחד ממוספרות זו ביחס לזו באותו אופן, ושם שנשמר כפי שהוא תופס את מקומו ראשון: user עם המפתח (id, user_id) מוסיף user_id עבור user_id ו-user_id_2 עבור id.
טבלת אב ללא שם משאירה את שם המפתח כפי שהוא, והוא ממוספר כמו כל שם אחר במקרה של התנגשות.
מפתח ללא שם נותן עמודת מפתח זר ללא שם.
הדבר כולל את המפתח הראשי שהעורך מוסיף לטבלת אב שאין לה מפתח כזה, אלא אם נותנים לו שם לפני הלחיצה על טבלת הבן.
השמות נקבעים בעת שרטוט הקשר. שינוי שם של טבלת האב או של המפתח שלה בהמשך אינו משנה אותם.
השורות New column במיפוי עמודות מקבלות שמות לפי אותם כללים, והרשימה מציגה כל שם לפני שבוחרים בו.
קשרים שמגיעים כשהעמודות שלהם כבר קיימות – מייבוא, מהדבקה, משכפול או ממיפוי עמודות שמצמיד עמודות קיימות – שומרים על השמות שיש לעמודות האלה.
סוכן קוד שמוסיף קשר באמצעות erd_add_relationship מקבל את אותם שמות ואת אותם סוגי נתונים – ראו כלים.
קריאת קו קשר
- קשר מזהה מוצג כקו רציף, וקשר לא מזהה כקו מקווקו.
- בקצה הבן מופיע סימן הקרדינליות של סוג הקשר: עיגול וקו עבור אפס או אחד, עיגול ורגל עורב עבור אפס או N, שני קווים עבור אחד בלבד, וקו ורגל עורב עבור אחד או N.
- קצה האב הוא עיגול וקו, כמו אפס או אחד, כשאחת מעמודות המפתח הזר מתירה
NULL, ושני קווים, כמו אחד בלבד, כשכולןNOT NULL. - ריחוף עם הסמן מעל קו קשר מדגיש אותו יחד עם העמודות שהוא מקשר בשתי הטבלאות.

לצד קצה הבן של קשר שמגדיר ON DELETE או ON UPDATE מופיעה תווית, כגון D:C U:R: D: ואחריו פעולת ה-ON DELETE, ואז U: ואחריו פעולת ה-ON UPDATE, וכל אחד מהם מופיע רק כשהפעולה שלו מוגדרת.
הפעולות מקוצרות לפי הסימון של erwin: C עבור CASCADE, R עבור RESTRICT, SN עבור SET NULL, SD עבור SET DEFAULT ו-NA עבור NO ACTION. לקשר שאינו מגדיר אף אחת מהן אין תווית.
התווית ממוקמת בצד הרחוק מטבלת הבן, מעל הקו כשקו הקשר יוצא מהצד השמאלי או הימני של אותה טבלה, ומימינו כשהוא יוצא מהצד העליון או התחתון, הרחק מסימן הקרדינליות.
היא מוצגת בצבע של קו הקשר על גבי תיבה קטנה בצבע הרקע של בד הציור, ומוארת יחד עם קו הקשר שלה. התוויות מוצגות מעל כל קווי הקשר, כך שקו שחוצה תווית עובר מתחתיה.
היא מציגה את הפעולה שנשמרה בקשר, ללא תלות במה שמסד הנתונים שנבחר כותב, ולכן ON DELETE SET DEFAULT עדיין מוצג כ-D:SD ב-MySQL.
ריחוף מעל קו קשר שמוגדרת בו לפחות אחת מהפעולות מציג גם תיאור כלי שמפרט את הפסוקיות במלואן, אחת בכל שורה, כגון ON DELETE CASCADE ו-ON UPDATE RESTRICT.
תיאור הכלי מופיע גם כשהתווית מוסתרת.
מעבר אל קשר מאיר אותו: בחירה בשורה תחת התיקייה Foreign Keys של טבלה בסייר, או בשורת מפתח זר במציג ההבדלים, מציגה את קו הקשר ואת התווית שלו בצבע הריחוף. במציג ההבדלים מואר קו הקשר בכל צד שמכיל את הקשר, כך שמפתח זר שנוסף מאיר רק את הצד הנוכחי, ומפתח זר שהוסר רק את הצד השמור.
הקפיצה בוחרת רק את טבלת הבן יחד עם עמודות המפתח הזר שלה, כשהתא הפעיל נמצא בראשונה מהן; הקשר עצמו עדיין לעולם אינו נבחר. לגבי המקום שאליו עוברת התצוגה, ראו היכן נוחתת קפיצה.
ההארה נכבית בלחיצה השמאלית או הימנית הבאה על בד הציור, בין אם על מקום ריק, טבלה, פתק, קבוצת טבלאות או קו קשר, ואפילו בלחיצה שמשאירה את הבחירה כפי שהייתה. גם מעבר לשורה אחרת או להתאמת חיפוש אחרת בסייר מכבה אותה, וכך גם מעבר לשורה אחרת במציג ההבדלים, בכל צד שאליו השורה הזאת עוברת.
הזזת התצוגה באמצעות לחצן העכבר האמצעי או כלי היד משאירה אותה מוארת, וכך גם כיווץ או הרחבה של שורה בסייר או במציג ההבדלים, ביטול הבחירה באמצעות Escape, וקפיצה מהחיפוש המהיר או מלחצן הכרטיס של הקישור החיצוני במצב זרימה.
ההארה אינה נשמרת ואינה נכללת בהיסטוריית הפעולות, ושותפים לעריכה אינם רואים אותה.
ניתן להסתיר את קווי הקשר בבד הציור של ERD באמצעות אפשרות התצוגה Relationship, או רק את התוויות שלהם באמצעות אפשרות התצוגה Referential Actions, שמופעלת כברירת מחדל – ראו אפשרויות תצוגה של טבלאות.
התוויות אינן מוצגות ב-70% ומטה, שם הטבלאות מצטמצמות לשם שלהן.
ייצוא תמונה מוצג תמיד ב-100%, ולכן הוא מציג את התוויות בכל רמת זום של בד הציור, אלא אם אפשרות תצוגה מסתירה אותן. כשהאפשרות Background כבויה, גם התיבה שמאחורי כל תווית שקופה.
מצב זרימה בכרטיסיית ויזואליזציה מציג קווי קשר גם כשהאפשרות Relationship כבויה, כל אחד כעקומה אפורה רציפה וחלקה אחת עם אותם סימני קצה, ולכן הקו המקווקו, התוויות, תיאור הכלי, ההארה אחרי קפיצה והניתוב האורתוגונלי שמתוארים בדף זה חלים רק על בד הציור של ERD. גם במצב זרימה, קשר מטבלה אל עצמה מתעקל סביב הפינה הימנית העליונה – ראו ניתוב קווי קשר.
ניתוב קווי קשר
קווי הקשר מנותבים באופן אורתוגונלי.
מסלול מתכופף סביב הטבלאות שנמצאות בין שני קצותיו במקום לחצות אותן, והפינות שלו מעוגלות.
כל קצה יוצא מהטבלה שלו בקטע ישר קצר לפני שהוא פונה, כך ששתי טבלאות קרובות זו לזו שקצוות קו הקשר שלהן מיושרים זה מול זה מחוברות בקו ישר אחד ולא במעקף.
מסלולים שיוצאים מאותו צד של טבלה מפוזרים למסדרונות נפרדים, כך שאינם עוברים זה על גבי זה.
רק טבלאות נעקפות: קו קשר עשוי לחצות פתק או את המלבן של קבוצת טבלאות, והוא מוצג מעל קבוצות טבלאות ומתחת לטבלאות ולפתקים.
קשר מטבלה אל עצמה מוצג כעקומה אחת סביב הפינה הימנית העליונה של הטבלה, שיוצאת מהצד העליון בקצה האב ונכנסת לצד הימני בקצה הבן.
קשרים עצמיים נוספים באותה טבלה מקוננים מחוץ לראשון, כך שהעקומות שלהם אינן חוצות זו את זו או את הטבלה.
אין מה להגדיר.
המסלולים מחושבים מחדש באופן אוטומטי בכל פעם שמשהו בבד הציור זז או משנה את גודלו, כך שלעולם אין צורך לגעת בהם ידנית.
