Как добавить несколько строк заказа в заданный orderid (первичный ключ) в таблице - PullRequest
0 голосов
/ 18 марта 2020

Я строю небольшой интернет-магазин, и у меня проблема в том, что я не могу вставить несколько строк заказа в конкретный заказ c из-за ограничения первичного ключа. Как я могу обойти это? Из-за удобства я хотел бы, чтобы id автоматически увеличивался ...

CREATE TABLE order (
    id INT NOT NULL AUTO_INCREMENT,
    number INT,
    productid VARCHAR(15),
    customerid INT,
    created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated TIMESTAMP DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
    deleted TIMESTAMP DEFAULT NULL,
    ordered TIMESTAMP DEFAULT NULL,
    sent TIMESTAMP DEFAULT NULL,
    PRIMARY KEY (id),
    FOREIGN KEY (productid) REFERENCES product(produktid),
    FOREIGN KEY (customerid) REFERENCES customer(id)
) ENGINE INNODB CHARSET utf8 COLLATE utf8_swedish_ci;

1 Ответ

3 голосов
/ 18 марта 2020

Вы не помещаете продукты в таблицу order. Вы создаете другую таблицу с внешними ключами для таблиц order и product.

CREATE TABLE order_product (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    productid VARCHAR(15),
    orderid INT,
    quantity INT,
    UNIQUE KEY (productid, orderid),
    FOREIGN KEY (productid) REFERENCES product(produktid),
    FOREIGN KEY (orderid) REFERENCES order(id)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...