我正在研究这个项目,其中我需要为一个主键添加多个条目。我知道使用主键只允许一行,但是我需要多个条目。例如:-
具有customer_id(主键)001的客户希望一次购买两本书的“ _”数量。由于customer_id是主键,因此后端有三列:customer_id,book_name,数量。我该如何实现? 该表如下所示:
customer_id book_name qty
001 Java 2
输入第一行详细信息后,由于出现重复的主键错误,我无法输入第二行。
我的错误与餐厅管理系统中的错误相关,因为我无法从table_no接受多个订单,因为table_no是主键。
共有三个表:起动器,主菜,饮料。
table_no(通用属性),开胃菜/主菜/饮料,数量。
table_no是入门表中的主键,而main_course和Drinks表中的外键。我只能在每个表中为table_no说1添加一行数据。 现在我不能在同一表的下一行中添加更多数据,否,因为发生重复错误(由于主键)。
对于我的问题结构不明确,我感到抱歉。谢谢。
我对此表单的设计
答案 0 :(得分:1)
我认为您的数据库架构需要重新评估。
您只能有一个客户(客户实体) 一个客户可以有多个订单(订单实体)
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
)
因此,一个客户可以有很多订单,一个订单可以有很多项目,而订单项只能有一个项目/每本书。
主键必须唯一,并且只能在一个表中使用一次,但是可以多次引用。