0

ingredientscustomersrecipesmenusおよびの複数のテーブルがありrestaurantsます。

条件は、 ingredientsHABTM customersrecipesHABTM ingredientsmenushasmany recipesrestaurantshasmanymenusです。

ただし、cmd コンソールを使用してすべてケーキを焼こうとすると、自動的に作成される関係は、食材には多くの顧客があり、顧客には多くの顧客があり、顧客は顧客に多くの顧客があり、顧客は顧客と顧客に属しており、顧客には顧客がいて、顧客に属しています。なにが問題ですか?テーブル定義またはコンソール?

ここに、create table ステートメントをリストします。

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)
);
4

1 に答える 1

1

HABTM 関係の場合、命名規則では両方の名前を複数形にする必要がありますcustomers_ingredientsingredients_recipes

于 2013-10-11T08:05:47.583 に答える