多対多の関係における「余分な」テーブルの必要性を理解しようとしています。
たとえば、私の ERD が:の場合Product m----- <makes> ----n Factory
、テーブルの次のコードは次のようになります。
CREATE TABLE factory(
factory_id INTEGER NOT NULL,
address VARCHAR(30) NOT NULL,
CONSTRAINT PK_factory_factory_id PRIMARY KEY(factory_id)
);
CREATE TABLE product(
prod_id INTEGER NOT NULL,
prod_name VARCHAR(30) NOT NULL,
price FLOAT NOT NULL,
CONSTRAINT PK_product_prod_id PRIMARY KEY(prod_id)
);
CREATE TABLE makes(
prod_id INTEGER NOT NULL,
factory_id INTEGER NOT NULL,
CONSTRAINT PK_makes_prod_id_factory_id PRIMARY KEY(prod_id, factory_id),
CONSTRAINT FK_product_prod_id FOREIGN KEY(prod_id) REFERENCES product(prod_id),
CONSTRAINT FK_factory_factory_id FOREIGN KEY(factory_id) REFERENCES factory(factory_id)
);
make テーブルの目的は何ですか? いつそれを使うのか、なぜそれが必要なのか、私には思いつきません。