mysql - Ist es notwendig, eine separate Spalte als Primärschlüssel für die relationale Zwischentabelle in der Datenbank festzulegen?
phpcn_u1582
phpcn_u1582 2017-06-22 11:54:41
0
4
1155

Zum Beispiel sind die allgemeinen Rollen und Benutzer mit der Rollenbenutzerzuordnungstabelle verknüpft. Die Felder lauten wie folgt:
role_id
user_id

Wenn es diese beiden Felder gibt, ist es dann notwendig, eine separate ID-Spalte als Primärschlüssel einzurichten?

phpcn_u1582
phpcn_u1582

Antworte allen(4)
某草草

没必要。
但是你可以将两个字段都建立索引以加快查询速度。

小葫芦

每一个表都应该设置一个主键,并且最好是自增的主键

世界只因有你

就数据库设计的范式化来说,我觉得如果这2个id能组成主键的化就没有必要再加个id了。

女神的闺蜜爱上我

user和role多对多关联的话:

CREATE TABLE user_role (
    user_id INTEGER NOT NULL,
    role_id INTEGER NOT NULL,
    PRIMARY KEY (user_id, role_id),
    KEY (role_id)
);

这样,既可以查到某个用户的所有权限,又可以查到拥有某个权限(例如超级管理员)的所有用户。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage