2010-11-26 9 views
0

私は2つのテーブルを持っています。最初のテーブルはcategoriesと呼ばれるカテゴリのテーブルで、2番目のテーブルはdocumentsというドキュメントのテーブルです。私は、複数のカテゴリが複数のドキュメントに適用され、CakePHP(これは私がnoobです)ですべてを数秒で焼くことを可能にする結合テーブルを作成しようとしています。テーブルのために...cakephpベーク2テーブルと結合テーブル

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; 

をし、私はそれが自動魔法焼くでしょうドキュメントで読んだからだ印象の下にあった:

私は、DBのために、このようにMySQLを使用しました。しかし、私は多くの未知の列エラーを取得します。私は命名規則を台無しにしてしまったのだろうと思っています。

答えて

1

categories_documentsには、プライマリキーである必要がある「id」フィールドが必要です。それはそれを修正する必要があります。詳細については、HABTMのドキュメントをご覧ください。私が正しくあなたを理解していれば、私はこのリンクは私ができるより良いあなたに物事を説明するのに役立つかもしれないと思う

+0

私のオリジナルのソースには欠陥があり、両方の答えを指すドキュメントは、リンクファイルのプライマリの2つのIDをCakePHPで悪い習慣にしていたことを示しています。ケーキの焼きと魔法はすべて起こった。 – adamg2000

+0

あなたがそれを修正したことを知ってうれしい! – Nigel

関連する問題