Cakephp多态关系

时间:2014-08-29 22:04:39

标签: php cakephp entity-relationship foreign-key-relationship database-relations

我正在开发一个用户系统,该系统有3种类型的用户:

  1. 公司雇主
  2. 客户
  3. 提供商
  4. 所有用户都有许多属性,因此我在用户表中分发了包含用户详细信息的登录信息和配置文件表

    我的架构是这样的:

    用户(使用用户名,电子邮件,密码,profile_id)

    user_profiles (公司雇主信息)

    client_profiles (用于客户信息)

    provider_profiles (供应商详细信息)

    我正在使用 CakePHP 2.x ,需要声明用户表的 profile_id 字段与我的三种类型的配置文件之间的关系用户表 在互联网上研究我发现这是一种叫做多态的关系, Laravel 就是这样的: http://laravel.com/docs/eloquent#polymorphic-relations 但显然我无法改变框架

    我希望有人能说明如何在 CakePHP 中声明这种关系

    如果您需要有关此问题的更多信息,请咨询我 提前致谢

1 个答案:

答案 0 :(得分:0)

直接的解决方案是:将所有三个xyz_profile_id字段添加到users表,并在模型验证规则中定义所有三个字段都可以为空。您必须检查右表是否已连接到控制器中的用户。但在我看来,这比在每个控制器动作中摆弄更简单,该表实际上与该列相关联。

如果三个表没有任何共同点,则它们不应共享相同的id-reference列。当它们都有相同的列时,为什么不将它们合并到users-table?