我正在尝试编写一个使用多个表的自定义关系,这种关系需要使用第一个表中的键连接到其他表.
每个表都有相同的列.
所以,让故事开始:
我正在开发一个基于在线策略的游戏.(PBBG - 基于持续浏览器的游戏)
我有一个大表(30.000.000行),我将该表拆分为100个较小的表(每个表中300.000行).
行动发生在村庄内.
有关村庄的详细信息存储在village表格中.
每个村庄都位于一个大陆内,所以有k一些村庄给我这个村庄所属的大陆.
村表包含以下列:
id - pk x - x在地图上的位置y - y在地图上的位置k - fk continent id name user_id fk points
我有100大洲,这就是为什么我有100个新的小桌子.
我还有一张桌子,用于存储所有建筑物的详细信息.
建筑细节存储在village_building表格中.
所以,从原来的表village_building,我现在village_building_k1,village_building_k2..., village_building_k100.
一个village_building_k...表有以下几列:
id - pk village_id - fk building_id - fk
现在,我尝试写从模型跳跃的关系village进行建模village_building_kX,其中X需要的时候应该改变.
如果我可以使用k模型中的值village,那将为我提供我需要加入的表的名称.
如果k = 2,我需要跳转village到village_building_k2使用concat
public function tableName() {
return 'village_building_k' . self::$k;
}
public function relations() {
return array(
'relation_village_building' => array(self::HAS_MANY, 'VillageBuildingKXSlaveM', 'village_id'),
);
}
Run Code Online (Sandbox Code Playgroud)
$model_village->relation_village_building->building_id