繁体   English   中英

一张表中的两个外键 sqlite3

[英]Two foreign keys in one table sqlite3

我有 3 张桌子。

第三张表 shop_order 的问题(也许不是)

当我启动 python 脚本创建表时出现错误:sqlite3.OperationalError: near "cart_id": syntax error

我尝试删除字段 cart_id 或 customer_id 它有效。 但是有两个外键它不起作用

CREATE TABLE account
(
    id integer primary key
);

CREATE TABLE shop_cart
(
    id integer primary key,
    
    FOREIGN KEY (owner_id) REFERENCES account (id)
);

CREATE TABLE shop_order
(
    id integer primary key,
    

    customer_id integer,
    FOREIGN KEY (customer_id) REFERENCES account (id),

    cart_id integer,
    FOREIGN KEY (cart_id) REFERENCES shop_cart (id)

);

外键位于列定义之后:

CREATE TABLE shop_order
(
  id integer primary key,
  customer_id integer,
  cart_id integer,
  FOREIGN KEY (customer_id) REFERENCES account (id),
  FOREIGN KEY (cart_id) REFERENCES shop_cart (id)
);

但是,您应该重新考虑您的表格设计:

  • 表 shop_cart 有什么用?
  • 如果 shop_order 有一个 customer_id #1 和一个与 customer #2 相关的 cart_id,这意味着什么?
  • 为什么在一张表中称其为帐户,而在另一张表中称其为客户? 保持一致。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM