联接表(关联表)是否具有主键?多对多关系 [英] Does a Join table (association table) have a primary key ? many to many relationship
问题描述
联接表(关联表)是否具有主键?多对多的关系.我见过一些带有主键的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屋!