私は codeigniter に基づいて診療所管理/患者電子記録プロジェクトを構築していましたが、データベース間に多くの関係があるため、orm を使用することにしました。
そこで、datamapper 1.8.2 をダウンロードして、新しい codeigniter プロジェクトを開始しました。最初に気づいたのは読み込み時間です。
codeigniter のウェルカム ページが 1 秒で読み込まれます ++ ! まだロジックなしで!これは正常ですか?それは受け入れられますか?通常、私のマシンでは ci は 0.002 秒でロードされますが、datamapper または 1.06 が最適です。
2番目の質問は関係についてです。
たとえば、2つのテーブルがあります
表 1 ユーザー . 私はすべてのオフィスの従業員を保存するために使用し、そこに役割があります
例(ユーザー)
|ID|name|role |
|1 |Demo|admin |
|2 |Demo|doctor |
|3 |Demo|nurse |
|4 |Demo|patient|
2 番目の表は訪問数です
|id|doctor_id|patient_id|.....
|1 |2 |4 |......
has_one(doctors,patient)
では、データマッパーがユーザーの各ユーザーに役割があり、そのテーブルの訪問とユーザー(医師、患者)を理解できるようにするにはどうすればよいhas_many(visits)
ですか? すべての訪問には医師と患者が 1 人しかいないため、すべての患者/医師は何度も訪問することができます。
現在の設定トライアル
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?
ヘルプ ?!