在特定行位置添加列

时间:2015-07-10 13:51:45

标签: mysql

这只是一个简单的问题:

我有用户表,它有字段名称,地址和books_bought。 books_bought是外键,它的值是来自其他表的PK。现在在第一次插入之后,我将填写所有这些字段,但在第二次INSERT之后我只想添加一个额外的books_bought,以便创建books_bought值的数组?

2 个答案:

答案 0 :(得分:1)

你这样做是错误的 - 这是一种one-to-many关系,即向一个用户购买的许多书籍。您需要在关系的 many 一侧使用外键,因此不要在users表上使用books_bought的外键,而是在books_bought表上向用户添加外键。

如果您有一个books表和一个users表,那么这是一个many-to-many关系,您需要一个链接表来在它们之间保存外键。

答案 1 :(得分:1)

books_bought单元格中不应该有多本书,因为它会违反数据库表的原子性约束。每个book_bought都必须有一个单独的条目。这将导致大量冗余信息,因为姓名,地址将针对特定人员购买的每本书重复。

要解决此问题,您必须将表拆分为以下内容: R1(primary_key,name,address)和R2(foreign_key,books_bought) 这里foreign_key引用R1的primary_key

相关问题