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条)

报告相同问题?

悬赏问题

  • ¥20 关于多单片机模块化的一些问题
  • ¥30 seata使用出现报错,其他服务找不到seata
  • ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
  • ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?
  • ¥15 Google speech command 数据集获取
  • ¥15 vue3+element-plus页面崩溃
  • ¥15 像这种代码要怎么跑起来?
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection