从表单获取客户详细信息时如何将客户添加到订单中

时间:2015-04-27 17:47:07

标签: mysql

我在将客户及其订单添加到订单表时遇到问题。

这是我用于创建我正在使用的四个表的SQL:

CREATE TABLE IF NOT EXISTS Product(
    ID int NOT NULL AUTO_INCREMENT,
    Name varchar(255) NOT NULL,
    Description text(65535) NOT NULL,
    Quantity int NOT NULL,
    Photo varchar(255),
    Price float NOT NULL,
    Category varchar(50),
    PRIMARY KEY (ID)
) ENGINE=innoDB;

CREATE TABLE IF NOT EXISTS Customer(
    ID int NOT NULL AUTO_INCREMENT,
    FirstName varchar(255) NOT NULL,
    LastName varchar(255) NOT NULL,
    Email varchar(255) NOT NULL,
    PhoneNumber varchar(11) NOT NULL,
    Address varchar(50),
    Town varchar(50),
    County varchar(50),
    PostCode varchar(50),
    PRIMARY KEY (ID)
) ENGINE=innoDB;

CREATE TABLE IF NOT EXISTS OrderTable(
  ID int NOT NULL AUTO_INCREMENT,
  Date date NOT NULL,
  PRIMARY KEY (ID),
  TotalPrice float NOT NULL,
  Customer_ID int NOT NULL,
  CONSTRAINT fk_Order_1
    FOREIGN KEY (Customer_ID)
    REFERENCES coursework_db.Customer (ID)
) ENGINE=innoDB;

CREATE TABLE IF NOT EXISTS OrderItem(
  ID int NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (ID),
  Product_ID int NOT NULL,
  Order_ID int NOT NULL,
  Quantity int NOT NULL,
  TotalPrice float NOT NULL,
  CONSTRAINT fk_OrderItem_1
    FOREIGN KEY (Product_ID)
    REFERENCES coursework_db.Product(ID),
  CONSTRAINT fk_OrderItem_2
    FOREIGN KEY (Order_ID)
    REFERENCES coursework_db.OrderTable(ID)
) ENGINE=innoDB;

我遇到的问题是如何将表中的客户添加到数据库中后用作OrderTable表中的外键。

目前我已将客户的详细信息存储在本地存储中,可以轻松访问,但一旦将客户添加到数据库,他们就会获得一个ID。这是我选择独特客户的唯一方法。

1 个答案:

答案 0 :(得分:1)

首先插入客户详细信息。然后获取新插入客户的ID并在插入订单详细信息时使用它!

将用户详细信息插入数据库后,可以使用LAST_INSERT_ID()来获取客户的ID。

或者,如果您使用的是PHP,那么:

希望这有帮助。