我正在构建一个基于 codeigniter 的诊所管理/患者电子记录项目,我决定选择一个 orm,因为我的数据库之间有很多关系。
所以我下载了datamapper 1.8.2并开始了一个新的codeigniter项目,我首先注意到的是加载时间!
codeigniter 欢迎页面现在在 1 秒 ++ 内加载!还没有任何逻辑!这是正常的吗?它可以接受吗?通常 ci 在我的机器上加载 0.002 秒,但使用datamapper orm 时它的 1.06 处于最佳状态!
第二个问题是关于关系的。
例如,我有 2 张桌子
表 1 用户。我用来存储我所有的办公室人员,还有角色
示例(用户)
|ID|name|role |
|1 |Demo|admin |
|2 |Demo|doctor |
|3 |Demo|nurse |
|4 |Demo|patient|
第二张桌子是访问
|id|doctor_id|patient_id|.....
|1 |2 |4 |......
那么我该如何设置这个,以便datamapper能够理解用户中的每个用户都有一个角色,以及表访问has_one(doctors,patient)
和用户(医生,患者)has_many(visits)
?因为每次就诊必须只有一位医生和一位患者,但每位患者/医生可以多次就诊。
当前设置试用
class Visit extends DataMapper {
var $has_one = array(
'doctor' => array(
'class' => 'user',
'join_self_as' => 'doctor_id',
'other_field' => 'visit'
),
'patient' => array(
'class' => 'user',
'join_self_as' => 'patient_id',
'other_field' => 'visit'
)
);
var $has_many = array();
用户
class User extends DataMapper {
var $has_one = array();
var $has_many = array(
'visit' => array(
'class' => 'visit',
'other_field' => 'doctor_id',
'join_self_as' => 'doctor_id',
)
);
但是当我尝试通过
$u=new user(2);
$u->visit->get();
它给了我错误
DataMapper Error: 'doctor_id' is not a valid parent relationship for Visit. Are your relationships configured correctly?
帮助 ?!