主键的多个条目

ruarlubt  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(552)

我在这个项目中,我需要添加一个主键的多个条目。我知道使用主键只允许一行,但我需要多个条目。对于一个example:-
拥有customer\ id(主键)001的客户希望一次购买两本数量为“\的书”。因为customer\u id是主键,后端有三列:customer\u id、book\u name、quantity。我如何做到这一点?表如下所示:
客户身份证簿名称数量
001 java 2
在输入第一行详细信息后,我无法输入第二行,因为出现了重复的主键错误。
我的错误与餐厅管理系统中的错误有同样的关系,因为表号是主键,所以我不能从表号中接受多个订单。
有三张table:开胃菜、主菜、饮料。
表号(公共属性),起动器/主菜/饮料,数量。
表\u no是starter表中的主键,外键是主\u course和drinks表中的外键。对于表1,我只能在每个表中添加一行数据。现在我不能在下一行为同一个表添加更多的数据,因为出现了重复错误(由于主键)。
很抱歉我的问题结构不明确。谢谢您。
我对这个表单的设计

oyxsuwqo

oyxsuwqo1#

我认为你的数据库模式需要重新评估。
您只能有一个客户(客户实体)一个客户可以有多个订单(订单实体)

customer(
   customer_id PRIMARY KEY auto_increment,
   customer_name VARCHAR
   /* OTHER CUSTOMER SPECIFIC DETAILS */
)

book(
   book_id PRIMARY KEY auto_increment,
   book_name VARCHAR,
   book_isbn VARCHAR
   /* OTHER BOOK SPECIFIC DETAILS */
)

customer_order(
    order_id PRIMARY KEY auto_increment,
    customer_id FOREIGN KEY (customer_id) REFERENCES customer(customer_id)
)

customer_order_items(
    item_id PRIMARY KEY auto_increment,
    customer_order FOREIGN KEY(customer_id) REFERENCE customer_order(order_id)
    book_id FOREIGN KEY(book_id) REFERENCE book(book_id)
    quantity INT
)

因此,一个客户可以有多个订单,一个订单可以有多个项目,而订单项目只能有一个项目/一本书。
主键必须是唯一的,并且只能在单个表中使用一次,但可以多次引用。

相关问题