Database cakephp数据库设计
我的数据结构如下:Database cakephp数据库设计,database,cakephp,associations,Database,Cakephp,Associations,我的数据结构如下: Company hasMany Regions Region hasMany Markets Market hasMany Stores Store hasMany Employees 必要时,我也有相应的物品 我使用外键进行关联。例如,每个商店都有市场标识 当我删除公司记录时,正确的区域也会被删除。然而,我突然想到,我还需要删除所有相关的市场、商店和员工。或者,如果我删除了一个市场,我需要删除所有商店和员工 实现这一点最合适的方式是什么 是否要向表中添加其他外键?例如,除
Company hasMany Regions
Region hasMany Markets
Market hasMany Stores
Store hasMany Employees
必要时,我也有相应的物品
我使用外键进行关联。例如,每个商店都有市场标识
当我删除公司记录时,正确的区域也会被删除。然而,我突然想到,我还需要删除所有相关的市场、商店和员工。或者,如果我删除了一个市场,我需要删除所有商店和员工
实现这一点最合适的方式是什么
使用依赖关联: 依赖:当dependent设置为true时,将删除递归模型 可能的在本例中,注释记录将在其 关联的用户记录已被删除
您不需要添加额外的外键。您好,谢谢您的回复。这只适用于一个级别。我把依附添加到公司的hasMany Regions模型中。这产生了预期的结果,相关区域被删除。但是,市场、商店和员工并未被删除。(我确实在所有模型中添加了dependent)。接下来,我尝试将Company hasMany市场添加到公司模型中。这将导致以下错误:“致命错误:类声明可能未嵌套…”我需要递归删除以分布在多个表中,从公司到地区到市场,以存储到基于删除公司的员工。好的,我知道了!CompaniesController.php中的delete调用需要将cascade设置为true。这看起来像$This->Company->delete($id,true)。此外,对于从其他级别开始,如果我从Market开始删除,我会将cascade添加到true,以删除关联的商店和员工。