与数字主键混淆

时间:2014-08-24 17:40:22

标签: mysql composite-primary-key primary-key-design

我希望有人可以提供帮助。我试图在下面设置一些东西但是我有点混乱。根据我的理解,为主键导出数字ID变量(例如自动递增)比使用自然'的复合主键更有效。定义记录的变量(特别是如果它们是字符变量(如果排序规则是UTF-8则更多)

如下例所示,每个客户都有一个项目列表(ITEMID),它们都是一个类别(CATID)的成员,但问题是我需要客户另外能够将他们的项目分配为一个组件收集集(SETID)是一个非识别参考表 - 任何客户都可以有一个SETID的多个版本。

集合所需的项目由CATID指定。因此,在下面针对一个客户的示例中,他们可以选择将第2项或第4项(或两者或两者)分配给SET 001。

**ITEMS** 
ITEMID CATID 
1      04
2      02
3      01
4      02
5      05

**SETS**
SETID  CATID 
001    01
001    02
002    04
003    05

**CATEGORY**
CATID 
01
02
03
04
05

**Wanted result:**
ITEMID CATID SETNUMBER SETID 
1      04                   (customer chose not to assign to SET 002)
2      02    1         001
3      01    1         001
4      02    2         001
5      05              003

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

根据您的描述,它听起来像" ITEM" table可以有一个NULLable" SETID"外键列。