联接表(关联表)是否具有主键?多对多关系 [英] Does a Join table (association table) have a primary key ? many to many relationship

查看:1069
本文介绍了联接表(关联表)是否具有主键?多对多关系的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

联接表(关联表)是否具有主键?多对多的关系.我见过一些带有主键的Join表,有些没有人请解释一下何时在连接表中有主键,为什么?

Does a Join table (association table) have a primary key ? many to many relationship. I've seen some Join tables with a primary key and some without can someone please explain when you would have a primary key in a join table and why?

提前谢谢;-)

推荐答案

在纯"join"或联结表中,所有字段都将成为主键的一部分.例如,让我们考虑以下表格:

In a pure 'join' or junction table all the fields will be part of the primary key. For example let's consider the following tables:

CREATE TABLE USERS
  (ID_USER NUMBER PRIMARY KEY,
   FIRST_NAME VARCHAR2(32),
   LAST_NAME VARCHAR2(32));

CREATE TABLE ATTRIBUTES
  (ID_ATTRIBUTE NUMBER PRIMARY KEY,
   ATTRIBUTE_NAME  VARCHAR2(64));

这些之间的连接表将允许许多用户拥有许多属性

A junction table between these to allow many users to have many attributes would be

CREATE TABLE USER_ATTRIBUTES
  (ID_USER NUMBER REFERENCES USERS(ID_USER),
   ID_ATTRIBUTE NUMBER REFERENCES ATTRIBUTES(ID_ATTRIBUTE),
   PRIMARY KEY(ID_USER, ID_ATTRIBUTE));

有时您会发现需要在联结表中添加非主列,但我发现这种情况相对较少.

Sometimes you'll find the need to add a non-primary column to a junction table but I find this is relatively rare.

分享并享受.

这篇关于联接表(关联表)是否具有主键?多对多关系的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆