Join表(关联表)是否有主键?多对多的关系

Imr*_*ran 5 php mysql sql sql-server oracle

Join表(关联表)是否有主键?多对多的关系.我已经看到一些带有主键的Join表和一些没有的人可以解释当你在连接表中有一个主键时为什么?

先感谢您;-)

Bob*_*ica 6

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

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));
Run Code Online (Sandbox Code Playgroud)

这些之间的联结表允许许多用户拥有许多属性

CREATE TABLE USER_ATTRIBUTES
  (ID_USER NUMBER REFERENCES USERS(ID_USER),
   ID_ATTRIBUTE NUMBER REFERENCES ATTRIBUTES(ID_ATTRIBUTE),
   PRIMARY KEY(ID_USER, ID_ATTRIBUTE));
Run Code Online (Sandbox Code Playgroud)

有时您会发现需要将非主列添加到联结表,但我发现这是相对罕见的.

分享和享受.