dongliang1941 2011-02-18 08:47
浏览 37
已采纳

CakePHP:将数据库'继承'转换为应用程序模型/控制器

I am currently designing a database for a system containing a number of different user types. My schema look like this:

## Users

id INT
name VARCHAR(60)
email VARCHAR(60)

## Doctors

id INT
user_id INT
specialism VARCHAR(60)
qualification_id INT

Essentially, the Doctors table is a child of the Users table.

Now, when i'm creating my models and controllers and models in Cake, I thought it was logical to create a User model and then subclass it with a Doctor model. But this doesn't seem to work when testing with the $scaffold (the 'has one' and 'belongs to' relationships work relatively well, but this way I would not be subclassing the Users classes).

What approach would you suggest for a database designed in this way?

  • 写回答

4条回答 默认 最新

  • duankangzi766767 2011-02-18 12:03
    关注

    CakePHP is not designed for this. CakePHP uses the ActiveRecord pattern. This pattern works great when your models roughly match up with your database tables. But it breaks down when you want to set up your models in the way you are trying to do now. For your setup, you'd need something like a Data Mapper pattern (as implemented by e.g. Zend_Db).

    In your case, I would simply set up User and Docter as two separate models with a hasOne/belongsTo relation. It will be far easier to go with the Cake-ish flow than to fight it.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?