我的Cakephp属于属于空白条目的关系吗?
-
30-09-2019 - |
题
我有两个数据库表,房屋和资产,并具有Hasmany-Belongsto关系。
直到最近,每个资产都属于一个房屋。最近,这变得更加复杂:现在有些资产属于房地产经纪人或地区而不是房屋。
今天,我一直在我的家中看到数十个空白条目。似乎几乎可以肯定它们是新资产的结果,这些资产与房屋无关,被保存。
资产模型中的属于家庭关系是否可能迫使这些空白条目的创建? (还是还有另一个可能的原因?)如果是关系,是否有一种快速修改关系的方法家庭入口?
编辑: :以下是模型之间的当前关系:
资产:
var $belongsTo = array(
'Home' =>array('className' => 'Home', 'foreignKey' => 'home_num'));
var $hasOne = array(
'Landmark' =>array('className' => 'Landmark', 'foreignKey' => 'asset_num',
'dependent' => true ));
家:
var $hasOne = array('HighlightImage' => array(
'className' => 'Asset',
'conditions' => 'highlight_image = TRUE',
'order' => '',
'foreignKey' => 'home_num',
'dependent' => false,
'exclusive' => false,
'finderQuery' => ''));
var $hasMany = array('Assets' => array(
'className' => 'Asset',
'conditions' => '',
'order' => '(Assets.title + 0 ) ASC',
'limit' => '200',
'foreignKey' => 'home_num',
'dependent' => false,
'exclusive' => false,
'finderQuery' => ''));
地标:
var $belongsTo = array(
'Assets' => array(
'className' => 'Asset',
'foreignKey' => 'asset_num'),
'Regions' =>array(
'className' => 'Region',
'foreignKey' => 'region_num'));
地区:
var $hasMany = array('Landmarks' => array(
'className' => 'Landmark',
'foreignKey' => 'region_num'));
解决方案
听起来您有一个所知道的弧线关系。这意味着您有一个具有多个关系的资产表。如上所述,似乎现在的资产表将包含可以属于3个不同表的数据:房屋,房地产经纪人或区域。以我的经验,蛋糕不能很好地处理弧形关系。
我的建议是创建多个资产表:
home_assets
realtor_assets
region_assets
乍一看,您可能会认为这已经过来了。但是,就简单而言,这是做到这一点的最佳方法。
您可以使用一张桌子,但需要更多的工作。如果您真的想使用单个资产表,则需要添加其他列(类型),如果还没有。然后,您需要在每次保存之前将类型添加到资产中,具体取决于保存数据的内容:HOME,房地产经纪人或区域。
如果您提供所使用的代码示例(用于家庭,房地产经纪人和区域),以适用于资产,则更容易诊断。考虑到代码集可能相当大,请考虑使用pastebin.com。
不隶属于 StackOverflow