如果结合当前数据查询返回另一个表的数据

之前设计的数据表结构如下:




CREATE TABLE IF NOT EXISTS `bm_fields` (

  `bmfid` mediumint(9) NOT NULL AUTO_INCREMENT,

  `fieldcode` varchar(50) NOT NULL,

  `fieldname` varchar(50) NOT NULL,

  `fieldgroup` varchar(50) NOT NULL,

  PRIMARY KEY (`bmfid`)

) ENGINE=MyISAM  DEFAULT CHARSET=utf8;


CREATE TABLE IF NOT EXISTS `bm_works` (

  `bmwid` mediumint(9) NOT NULL AUTO_INCREMENT,

  `worksno` varchar(50) NOT NULL,

  `mid` mediumint(9) NOT NULL,

  `workstitle` varchar(50) NOT NULL,

  `topic` varchar(50) NOT NULL,

  `topicunit` varchar(50) NOT NULL,

  `workstype` varchar(50) NOT NULL,

  `teacher` varchar(50) NOT NULL,

  `creative` text NOT NULL,

  `workscode` varchar(50) NOT NULL,

  `posttime` int(11) NOT NULL,

  PRIMARY KEY (`bmwid`)

) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;



bm_fields表是用来储存多个字段的fieldgroup的值分别为’topicunit’,'workstype’等

然后bm_works的topicunit,workstype的值分别对应bm_fields的fieldgroup下的不同值。

想在bm_works的model直接取出对应的fieldname,应该如何做?


INSERT INTO `dede_bm_fields` (`bmfid`, `fieldcode`, `fieldname`, `fieldgroup`) VALUES

(32, 'a', '平面广告作品', 'workstype'),

(33, 'b', '影视广告作品', 'workstype'),

(34, 'c', '营销策划作品', 'workstype'),

(35, 'd', '网络广告作品', 'workstype'),

(36, 'A', '营销策划作品', 'workstype'),

(37, 'F', '网络广告作品', 'workstype'),




INSERT INTO `dede_bm_works` (`bmwid`, `worksno`, `mid`, `workstitle`, `topic`, `topicunit`, `workstype`, `teacher`, `creative`, `workscode`, `posttime`) VALUES

(27, '1', 66, '驶向未来', '', 'A', 'a', '程明', '<p>用玩具小火车载着奶粉,很童真,能够吸引家长的眼球,也体现了贝因美的宗旨</p>', '1', 1262834656),

(26, '2', 44, '爱在地球', '', 'F', 'a', '程明', '<p>粉绿色的背景给人一种自然清新,充满朝气的感觉;伊利优酸乳围绕地球,寓意伊利集团进军全球,伊利优酸乳将成为地球人都喝的饮品;作品中下方的外星人所说的显示了伊利优酸乳的可口美味,令人流连忘返。</p>', '1', 1262832969),

建立两张表的关系,查看这里:http://www.yiiframework.com/doc/blog/zh_cn/post.model ,文章中的“自定 relations() 方法”。

然后,在一个Model中的相应方法中调用关联取回数据。

嗯~我遇到的问题的不懂得如何将bm_works通过workstype和一个字符串通过bm_fields的fieldcode和fieldgroup进行关联

1 如果有外键管理,则用relation,

2 没有则写一个 get函数

getFields(){

//model()->find

}

或者是

getWorks(){

//model()->find

}

谢谢!