我的CakePHP是否属于创建空白条目的关系?

时间:2011-01-07 00:14:53

标签: mysql cakephp relationship belongs-to

我有两个数据库表,Homes和Assets,具有HasMany-BelongsTo关系。

直到最近,每个资产都归属于一个家庭。最近这变得更加复杂:现在有些资产属于房地产经纪人或地区而不是房屋。

今天我已经看到我的Homes表中出现了几十个空白条目。几乎可以肯定的是,他们是新资产的结果,这些资产与家庭无关,正在被拯救。

资产模型中的BelongsTo Home关系是否可能强制创建这些空白条目? (或者是否有另一个可能的原因?)如果是关系,是否有一种快速修改关系的方法,因此资产的生成可以(但不一定必须)与生成新的生成器齐头并进回家?

已编辑:以下是模型之间的当前关系:

资产:

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'));

1 个答案:

答案 0 :(得分:0)

听起来你有一个所谓的ARC关系。这意味着您有一个具有多个关系的资产表。如上所述,现在似乎Assets表将包含可属于3个不同表的数据:Homes,Realtors或Regions。根据我的经验,蛋糕不能很好地处理ARC关系。

我的建议是创建多个资产表:

home_assets
realtor_assets
region_assets
乍一看,你可能会认为这是过度杀戮。但是,就简单性而言,这是最好的方法。

您可以使用单个表,但需要更多工作。如果您确实想要使用单个资产表,则需要添加其他列(类型)(如果尚未添加)。然后,您需要在每次保存之前将类型添加到资产,具体取决于保存数据的内容:home,realtor或region。

如果您提供适用于资产的代码示例(适用于家庭,房地产经纪人和地区),则诊断起来会更容易。考虑使用pastebin.com,因为我认为代码集可能相当大。