2010-11-26 4 views
0

Ich habe zwei Tabellen. Die erste Tabelle ist eine Tabelle mit den Kategorien categories, die zweite ist eine Tabelle mit den Dokumenten documents. Ich versuche eine Join-Tabelle zu erstellen, die es erlaubt mehrere Kategorien auf mehrere Dokumente anzuwenden und alles in Sekunden mit CakePHP (zu dem ich kein Anfänger bin) zu backen.cakephp backen 2 Tische mit einer Tischplatte

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; 

... für die Tische und war unter dem Eindruck, den ich von bekam, was ich in der Dokumentation zu lesen, dass es auto-magisch backen würde:

Ich habe mysql wie dies für die DB verwendet. Allerdings bekomme ich viele unbekannte Spaltenfehler. Ich frage mich, ob ich die Namenskonventionen durcheinander gebracht habe und ob jemand mich richtig stellen könnte, bevor ich zu lange zu tief gegraben habe?

Antwort

1

Die categories_documents benötigen ein "ID" -Feld, das der Primärschlüssel sein muss. Das sollte es beheben. Weitere Informationen finden Sie in der Dokumentation HABTM.

+0

Meine ursprüngliche Quelle war fehlerhaft, die Dokumentation, auf die beide Antworten zeigten, zeigte an, dass die Erstellung der beiden IDs in der Link-Datei primär eine schlechte Übung in CakePHP war und die Hinzufügung der ID wie hier beschrieben alles berichtigte. Kuchen backen und die Magie alles passiert. – adamg2000

+0

Gut zu wissen, dass du es repariert hast! – Nigel

Verwandte Themen