2013-10-11 5 views
0

У меня есть несколько таблиц: ingredients, customers, recipes, menus и restaurants.CakePHP HABTM отношения

условия являются: ingredients HABTM customers, recipes HABTM ingredients, menus hasmany recipes и restaurants hasmany menus.

Однако, когда я пытаюсь испечь все, используя консоль cmd, отношения, которые создаются автоматически, похожи на компоненты hasmany customers_ingredients, клиенты hasmany customers_ingredients и customer_ingredients принадлежат клиенту и ингредиентам, вместо того, чтобы давать ингредиенты и другие клиенты. Что не так? Определение таблицы или консоли?

Здесь я перечисляю мое создать таблицу заявление:

CREATE TABLE customers (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    cust_gname VARCHAR(20) NOT NULL, 
    cust_fname VARCHAR(30) NOT NULL, 
    cust_street VARCHAR(30) NOT NULL, 
    cust_suburb VARCHAR(30) NOT NULL, 
    cust_state VARCHAR(6) NOT NULL, 
    cust_postcode VARCHAR(4) NOT NULL, 
    cust_email VARCHAR(50) NOT NULL, 
    cust_phone VARCHAR(12), 
    cust_mobile VARCHAR(12) 
); 

CREATE TABLE restaurants (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    name VARCHAR(30), 
    address1 VARCHAR(30), 
    address2 VARCHAR(30), 
    suburb VARCHAR(30), 
    state VARCHAR(10), 
    postcode VARCHAR(4) 
); 

CREATE TABLE ingredients (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    name VARCHAR(30) 
); 

CREATE TABLE menus (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    description VARCHAR(30), 
    restaurant_id INT UNSIGNED, 
    CONSTRAINT fk_restID FOREIGN KEY (restaurant_id) REFERENCES restaurants(id) 
); 

CREATE TABLE recipes (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    name VARCHAR(30), 
    menu_id INT UNSIGNED, 
    image VARCHAR(30), 
    CONSTRAINT fk_menuID FOREIGN KEY (menu_id) REFERENCES menus(id) 
); 

CREATE TABLE ingredient_recipes (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    ingredient_id INT UNSIGNED, 
    recipe_id INT UNSIGNED, 
    CONSTRAINT fk_ingID FOREIGN KEY (ingredient_id) REFERENCES ingredients(id), 
    CONSTRAINT fk_recID FOREIGN KEY (recipe_id) REFERENCES recipes(id) 
); 

CREATE TABLE customer_ingredients (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    customer_id INT UNSIGNED, 
    ingredient_id INT UNSIGNED, 
    CONSTRAINT fk_ingrID FOREIGN KEY (ingredient_id) REFERENCES ingredients(id), 
    CONSTRAINT fk_cusID FOREIGN KEY (customer_id) REFERENCES customers(id) 
); 

ответ

1

для HABTM отношений конвенции имена хочет оба названия, чтобы быть во множественном числе: customers_ingredients и ingredients_recipes

+0

Это решает проблемы. Спасибо огромное! –

Смежные вопросы