純粋な「結合」またはジャンクションテーブルでは、すべてのフィールドが主キーの一部になります。たとえば、次の表について考えてみましょう。
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));
多くのユーザーが多くの属性を持つことができるようにするためのこれらの間のジャンクションテーブルは次のようになります
CREATE TABLE USER_ATTRIBUTES
(ID_USER NUMBER REFERENCES USERS(ID_USER),
ID_ATTRIBUTE NUMBER REFERENCES ATTRIBUTES(ID_ATTRIBUTE),
PRIMARY KEY(ID_USER, ID_ATTRIBUTE));
非プライマリ列をジャンクションテーブルに追加する必要がある場合もありますが、これは比較的まれです。
共有してお楽しみください。