我有两张桌子。第一个表是一个名为categories
的类别表,第二个表是一个名为documents
的文档表。我正在尝试创建一个连接表,允许将多个类别应用于多个文档,并使用CakePHP(我是一个菜鸟)在几秒钟内烘焙它。
我在数据库中使用了这样的mysql:
CREATE TABLE `categories` (
`id` int(10) unsigned NOT NULL auto_increment,
`cat_name` varchar(100) default NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `documents` (
`id` int(10) unsigned NOT NULL auto_increment,
`title` varchar(50) default NULL,
`size` varchar(10) default NULL,
`file` varchar(50) default NULL,
`date` date default NULL,
`created` datetime default NULL,
`modified` datetime default NULL,
`status` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `categories_documents` (
`category_id` int(10) unsigned NOT NULL default '0',
`document_id` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`category_id`,`document_id`)
) TYPE=MyISAM DEFAULT CHARSET=utf8;
...对于表格而言,我从我在文档中看到的那些印象中得到的印象是它会自动烘烤。但是我收到了很多未知的列错误。我想知道我是否搞砸了命名惯例,如果有人在我花太长时间挖掘太深之前就能把我弄好吗?
答案 0 :(得分:1)
categories_documents需要一个“id”字段,该字段需要是主键。那应该解决它。有关更多信息,请阅读HABTM文档。
答案 1 :(得分:1)
如果我理解正确,我认为此链接可能有助于向您解释事情:http://book.cakephp.org/view/872/Joining-tables
我的经验是手动编写所有型号代码,从未使用过烘烤。