Давайте рассмотрим простой пример (упрощенный пример из здесь ):
CREATE TABLE [Employees](
[EmployeeID] nchar(5) primary key,
[ReportsTo] nchar(5) NULL,
constraint fk_Employees_Employees foreign key(ReportsTo) references Employees(EmployeeID)
);
CREATE TABLE [Orders](
[OrderID] integer primary key autoincrement,
[EmployeeID] int NULL
constraint fk_Orders_Employees foreign key (EmployeeID) references Employees (EmployeeID)
);
у нас есть 2 таблицы, одна из которых имеет элементы, которые взаимосвязаны, а другая - элементы первой таблицы.
Представьте, что у нас есть некоторые "Сотрудники" и некоторые "Заказы", что произойдет с заказами и сотрудниками, которые относятся к некоторым EmployeeID
, когда они будут изменены?
Скажем, у нас Tom
и порядок 1
, относящийся к tom
. Мы изменили Tom
на Ben
. Будет ли заказ 1
связан с Ben
теперь автоматически через скрытую от нас магию SQLite, или нам придется явно высчитывать все ордера, принадлежавшие Tom
, чтобы они были Ben
сейчас?