用PHPcake烘焙正确的数据库命名

时间:2010-09-27 12:45:20

标签: php model-view-controller cakephp

刚刚进入MVC开发和蛋糕实施,所以我对表命名和id引用感到困惑。

我有一个名为Assets的表,资产中的值是资产,是asset_status_id字段,它是对表的引用Asset_Statuses这个表是资产可以在任何时间进入的可能状态的简单列表(活动,非活动) ,Sold,Maintenace等)我选择使用一个表作为a)我想我需要在某个时候添加更多选项b)我在这个表中有一个'sequence'字段,所以我可以控制排序他们会在任何挫折中表现出来。

'Cake Bake'ing似乎看到一个名为Asset_Statuses的表作为表示存在Assets表和不存在的Statuses表之间的关系的指示。现在我知道你的想法只是称表格状态正确吗?但我有一个我想使用的'Status'表,例如Domain_Status,当然不会使用相同的状态列表。

那么我应该使用什么命名约定来使这一切都很容易?

2 个答案:

答案 0 :(得分:0)

我不确定资产状态的复数是资产状态(您应该检查),并且表格也必须是小写的,所以asset_states,而不是Asset_States。但您可以在模型中使用完全不同的表格。检查this。所以基本上创建一个模型,根据自己的喜好命名。即AssetState和put:

var $useTable = 'asset_states';

我觉得你不会有问题。只要确保在你的关系中属于,你可以提供正确的类名,即:

var $belongsTo = array(
   'AssetState' => array(
      'className' => 'AssetState' //Most important
   )
);

答案 1 :(得分:0)

您最好使用状态表,因为它可以全部使用,而不仅仅是资产。这可以很容易地添加一个模型字段,所以它的id,model,status。

然后你的加入只是一个条件。

class Asset extends AppModel{
    var $belongsTo = array(
       'Status' => array(
          'className' => 'Status' // not needed with the proper conventions and not in a plugin,
          'conditions' => array('Status.model' => 'Asset')
       )
    );
}

您可以使用行为自动设置beforeSave

中的模型字段

作为旁注,所有表格都应该是小写的,而不是你正在使用的有趣案例。这可能是导致事情无法正常运转的原因。