テーブル 1 (都市)
ID 名前コード
1 北京 0001
2 上海 0002
テーブル 2 (ユーザー)
ID ユーザー名 都市コード
1 シャオ・リー 0001
2 シャオ・ワン 0001 0001 3 シャオ・ホン 0002
2枚目テーブルの citycode フィールドは、最初のテーブルの code フィールドに対応します
これら 2 つのモデルの関係を YII モデルでどのように記述するか?
都市テーブル(City.php)の対応モデル
<?phpclass City extends CActiveRecord{ public static function model($className=__CLASS__) { return parent::model($className); } public function tableName() { return 'city'; } public function relations() { return array( //'user' => array(self::HAS_MANY, 'User', 'code'),这里不知道要怎么写,这样写不知道对不对? ); }//…………}
<?phpclass User extends CActiveRecord{ public static function model($className=__CLASS__) { return parent::model($className); } public function tableName() { return 'user'; } public function relations() { return array( //'city' => array(self::BELONGS_TO, 'City', 'citycode'),这里不知道要怎么写,这样写不知道对不对? ); }//…………}
私も初心者なので、私の意見を言わせてください!
まず第一に、2 つのテーブル間の関連付けには外部キー制約が原因で問題があります。また、最初のテーブルのフィールド citycode は主キーではないため、外部キーとして使用できません。 2 つのテーブル間の接続について話すことは不可能です。
次のようにテーブルが作成される場合:
create table city(
cityCode varchar(25) not null 主キー,
name varchar(128) not null,
);
create table user(
id int( 11 ) 主キー、
name varchar(128) not null、
cityCode varchar(25) not null、
外部キー(cityCode) 参照 city(cityCode)、
); 外部キーを確立した後、
説明関連付け関係:
ユーザー:
return array('user'=>array(self::BELONGS_TO, 'City', 'cityCode'));
City:
return array('city'=>array(self: : HAS_MANY、'ユーザー'、'都市コード'));