Показать сообщение отдельно
Старый 12.12.2001, 03:27   #1  
sguryev is offline
sguryev
Участник
 
24 / 13 (1) ++
Регистрация: 07.12.2001
Адрес: Сергиев Посад
Post Исследование - Как работают разные типы Delete Actions.
Существует 4 типа delete actions:
None, Cascade, Restricted, Cascade+Restricted
Из Руководства разработчика Axapta не совсем понятно, как они работают особенно Cascade+Restricted.

Как работают эти режимы я проверил на следующих таблицах:
Три таблицы:
DepartmentTable
ManagerID -> EmployeeTable.EmployeeID
DepartmentID
DepartmentName

EmployeeTable
CompanyID -> CompanyTable.ID
EmployeID
EmployeeName
DepartmentID -> DepartmentTable.DepartmentID
Delete Action
DepartmentTable
CompanyTable
ID
Name
Delete Action
EmployeeTable

Т.е. есть таблица компаний (имя компании, идентификатор компании), есть таблица
сотрудников различных компаний (имя сотрудника, идентификатор компании в
оторой он работает, идентификатор отдела к которому он закреплен и идентификатор
отрудника), и есть таблица отделов компаний (название отдела, идентификатор
отдела и идентификатор сотрудника его возглавляющего). Дальнейшее усложнение
схемы не имеет смысла для данного исследования.

1) EmployeeTable
Delete Action
DepartmentTable = None
CompanyTable
Delete Action
EmployeeTable = None
Результат: удаление записи в любой из таблиц никак не влияет на записи других
таблиц.

2) EmployeeTable
Delete Action
DepartmentTable = None
CompanyTable
Delete Action
EmployeeTable = Cascade
Результат:
- удаление записи в EmployeeTable не влияет на другие таблицы.
- удаление записи в CompanyTable влечет удаление всех связанных записей в
EmployeeTable, DepartmentTable без изменений.
__________________
Гурьев Сергей