简单数据库。外键插入

时间:2012-08-23 12:36:16

标签: sql database

我有两个类别A和B,其中包含以下列:

A类

_id | name

B类

_id | tableA_id |name

商品列表

_id | name | tableB_id

tableA_idtableB_id是外键,_id列是主键。

B类是A的子类别。

name列是唯一的(每个表中只有一个类别)

我想插入5个项目,分别为A和B类。

第1项:

name: item1
category A: Movie
Category B: Action

第2项:

name: item2
category A: Movie
Category B: Drama

第3项:

name: item3
category A: Movie
Category B: Comedy

第4项:

name: item4
category A: Music
Category B: Pop

第5项:

name: item5
category A: Music
Category B: Rock

如何在不查询其对应的主要ID的情况下填充外键?

或者我错过了数据库设计的重要部分?

3 个答案:

答案 0 :(得分:1)

如果您的数据库设计是“正确的”,为了防止损坏,您将无法在没有父键的情况下插入子记录。

为了获取父键而不进行重新查询,请阅读这篇优秀文章:

http://www.mikesdotnetting.com/Article/54/Getting-the-identity-of-the-most-recently-added-record

答案 1 :(得分:1)

  

如何在不查询其对应的主要ID的情况下填充外键?

如果我正确理解了您的问题,则无法在不查询Rock的ID时将新记录插入表List时填充外键,即没有

select _id,  tableA_id
from Category_B
where name = 'Rock'

答案 2 :(得分:1)

首先填充CATEGORY_A和CATEGORY_B。

然后插入ITEM_LIST,知道CATEGORY_B.ID。