Cakephp 多列还是单个文本字段?

Cakephp 多列还是单个文本字段?,cakephp,database-design,Cakephp,Database Design,我的问题是关于一个逻辑问题,它可能会对未来产生一些影响: 我准备好了3个模型(房间、纪律、系列)和一个叫做打印输出的模型。 在打印输出中,我可以选择标题图像并定义标题文本,但如何定义这三种模型中要使用的内容呢 我认为有两种可能性: 打印输出中有自己的列,适用于每个模型(房间、专业、系列) 我稍后手动解析的单个文本字段 这两种方法之间是否有缺点。建议的内容 我知道这更符合逻辑,而不是开发问题,但我还是想在项目的早期阶段选择更好的方法 cheers endo执行此操作的常用方法是在打印输出表中使

我的问题是关于一个逻辑问题,它可能会对未来产生一些影响:

我准备好了3个模型(房间、纪律、系列)和一个叫做打印输出的模型。 在打印输出中,我可以选择标题图像并定义标题文本,但如何定义这三种模型中要使用的内容呢

我认为有两种可能性:

  • 打印输出中有自己的列,适用于每个模型(房间、专业、系列)
  • 我稍后手动解析的单个文本字段
这两种方法之间是否有缺点。建议的内容

我知道这更符合逻辑,而不是开发问题,但我还是想在项目的早期阶段选择更好的方法


cheers endo

执行此操作的常用方法是在打印输出表中使用
外键
模型
字段(本页有更多详细信息):

“外键”是“其他”模型的id,“模型”是其他模型的名称


因此,您的打印输出属于所有3个其他模型,并且在关联中,您指定了“Printout.model'=>“Room”(或任何模型)的条件。

请提供更多关于表结构的信息,您的模型是如何连接的(哪一个是父模型,哪一个是子模型,以及您到底想做什么),所以我可以给你一个更好的答案

无论如何,您不必首先绑定模型,您可以在控制器逻辑中这样做:

$this->PrintOut->bindModel(array(
    'belongsTo' => array(
        'Room' => array(
            'className' => 'Room',
            'foreignKey' => 'room_id',
        ),
    ),
));
或者,如果文件室属于打印输出:

$this->PrintOut->bindModel(array(
    'hasOne' => array(
        'Room' => array(
            'className' => 'Room',
            'foreignKey' => 'printout_id',
        ),
    ),
));
您的解决方案也可能是其他的,但我需要更多关于您的模型的信息

编辑


现在我看到你的问题可能有点不同。。。您应该检查带有条件的绑定模型。

这不是一种好的做法,没有理由对这种类型的关联使用bindModel。除非有其他理由,否则应该在模型中处理关联。在这种情况下,这是非常简单的联系。是的,我一开始误解了这个问题,但把它作为有用的信息放在那里。但是为什么动态绑定是一种不好的做法呢?在控制器中执行模型逻辑并不理想,在显然不需要动态关联的情况下,将bindModel用于正常关联可以处理的事情也不是一种好的做法。是的,但是如果您仅在特定操作中使用绑定,我认为最好是将其绑定到操作中,而不是修改其他操作中的所有默认查询,以防止获取大量不需要的数据。无论如何,我不太理解这个问题,因此这不是正确的答案,我同意。如果我对之前所述的情况有错误,请指出,我愿意学习一些新的东西。:)“而不是修改所有默认查询”-我认为这是问题所在。听起来您使用的是递归集,而不是-1默认值。理想情况下,在AppModel中将其设置为-1,然后所有“默认查询”仅在模型上。您想要包含的任何其他模型都可以/应该通过ContaineableBehavior包含,而不是递归。