我有两个 Myisam 表,假设是 Parent 和 Child。Parent 是在 perl 脚本中创建的。Parent 是孩子获取信息的地方(不是用于编辑),所有信息都是相同的,而 Child 拥有它独有的信息。遵循 Cakephp 命名约定,它们通过 Parent 的 id 字段和 child 的 parent_id 连接。当通过另一个应用程序(通过 Perl 添加的记录)更新父表时,它会显示在子表中,但如果删除了一条记录,则子表不会更新。有没有办法遵循 cakephp 约定来更新表(删除在 Parent 中删除的记录)?我在孩子的父表中有'依赖'=> true?那需要在子表中吗?或者这无关紧要,因为表格是在应用程序之外更新的?
如果不出意外,我也许可以设置一个 cron 作业来定期检查表,但我不确定如何通过MYSQL查找/删除父表中不再存在的子表中的记录。连接的组合以及在哪里这样的 n 这样的 <>?所以我的问题是如果表格在应用程序之外更新,我可以用 cakephp 来做吗?或者我将如何使用mysql?
代码:
<?php
class Drug extends AppModel {
var $name = 'Drug';
var $order = "Drug.generic ASC";
var $useDbConfig = 'default';
var $actsAs = array('ExtendAssociations', 'Containable');
var $hasOne = array(
'FrenchTranslation' => array(
'className' => 'FrenchTranslation',
'dependent' => true
),
'GermanTranslation' => array(
'className' => 'GermanTranslation',
'dependent' => true
),
'SpanishTranslation' => array(
'className' => 'SpanishTranslation',
'dependent' => true
)
);
}
?>
<?php
class FrenchTranslation extends AppModel {
var $name = 'FrenchTranslation';
var $validate = array(
'drug_id'=>array(
'The drug_id must be unique.'=>array(
'rule'=>'isUnique',
'message'=>'The Drug ID must be unique.',
'on'=>'create'
),
'The drug_id must be numeric.'=>array(
'rule'=>array('numeric'),
'message'=>'The Drug ID must be numeric.'
)
),
'id'=>array(
'The id must be unique.'=>array(
'rule'=>'isUnique',
'message'=>'The ID must be unique.',
'on'=>'create'
),
'The id must be numeric.'=>array(
'rule'=>array('numeric'),
'message'=>'The ID must be numeric.'
)
)
);
var $belongsTo = array(
'Drug' => array(
'className' => 'Drug',
'foreignKey' => 'drug_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'User'=>array(
'className'=>'User',
'foreignKey'=>'user_id'
),
);
}
?>