Външният ключ дефинира връзка родител - дете между две таблици. Първичният ключ в родителската таблица е външният ключ в до n дъщерни реда на таблицата.
Сега, ако този първичен ключ в родителската таблица получи UPDATE, се включва UPDATE RULE. Или всички дъщерни редове също се актуализират, зададени на NULL или каквото и да е друго. Най-добрата практика обаче е да имате първичен ключ, който НИКОГА не се променя (фиксиран ID или нещо подобно), така че това е по-малко важното правило.
По-важното е правилото DELETE - какво ще стане, ако родителският ред бъде изтрит (напр. поръчката е изтрита)? Можете също така да изтриете всички дъщерни редове (всички редове за поръчка) с CASCADE DELETE или можете да зададете техния външен ключ на NULL (те вече нямат родител) - това зависи изцяло от конкретния ви сценарий.
В сценария Поръчка/редове за поръчка може да е напълно полезно да изтриете редовете за поръчка, когато цялата поръчка бъде изтрита, но вероятно не искате да изтриете продукт, само защото поръчка, която го споменава, е била изтрита - няма един единствен ПРАВИЛЕН отговор - зависи от вашия сценарий и вашето приложение.
Марк