多个一对一关系 mysql

multiple one-to-one relationship mysql

是否可以创建具有多个一对一关系的 table? 我试图通过以下查询获取它,但得到 SQL 错误。

表格是: 订单:

用户

购物车:

我想创建 table 具有一对一关联的两列的订单。

create table order
( id int auto_increment
, cart_id int
, user_id int
, payment_method_id int
, shipping_method_id int
, total_price int
, primary key(user_id)
, primary key(cart_id));

我复制了下面的查询,但出现错误,不知道为什么。

create table order(id int auto_increment, cart_id int, user_id int, payment_method_id int, shipping_method_id int, total_price int, primary key(id), foreign key (user_id) references user(id), foreign key (cart_id) references cart(id));

它说:

[42000][1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order(id int auto_increment, cart_id int, user_id int, payment_method_id int, sh' at line 1

我看不到什么?我只把id改成了id.

首先,Table 上的主键不能超过一个。 其次,要建立关系,您需要使用 Foreign Key

尝试以下查询:

create table order
( id int auto_increment
  , cart_id int
  , user_id int
  , payment_method_id int
  , shipping_method_id int
  , total_price int
  , primary key(id)
  , FOREIGN KEY (user_id) REFERENCES User(Id)
  , FOREIGN KEY (cart_id) REFERENCES Cart(Id));